json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...
主要內(nèi)容:
一、json相關(guān)概念
二、json字符串轉(zhuǎn)換成json對象 (字符串-->JSON對象)
三、json對象轉(zhuǎn)換成字符串(json對象-->字符串)
四、將值轉(zhuǎn)換成字符串(值-->字符串)
五、字符串轉(zhuǎn)成值(字符串-->值)
?
同步的交流學(xué)習(xí)社區(qū):http://www.mwcxs.top/page/425.html
一、json相關(guān)概念
json,全稱為javascript object notation,是一種輕量級的數(shù)據(jù)交互格式。采用完全獨(dú)立于語言的文本格式,是一種理想的數(shù)據(jù)交換格式。
同時,json是javascript是原生格式,所以javascript操作處理json不需要任何包,api,任何依賴。
json中有兩個結(jié)構(gòu):(1)數(shù)組(2)對象
(1)什么是數(shù)組
數(shù)組就是以"["開始,以“]”結(jié)束的,值之間運(yùn)用 “,”(逗號)分隔。
比如:
[{"key": "test1","value": 123,"type": "number","required": "true","description": "字段描述2","children": []}, {"key": "test2","value": 345,"type": "boolean","required": "true","description": "字段描述4","children": []}]children是一個數(shù)組,數(shù)組里有兩個值,值也就是一個對象。
?
(2)什么是對象
對象就是以“{”開始,以“}”結(jié)束的,后邊跟著每一對鍵值,鍵與值之間使用冒號分隔開。如果值是字符,則必須用引號,數(shù)值型則不須要。
{"key": "test1","value": 123,"type": "number","required": "true","description": "字段描述2","children": []}在數(shù)據(jù)傳輸中,json是以文本,即字符串的形式傳遞的,而js操作json對象,所以json對象和json字符串之間的轉(zhuǎn)換是關(guān)鍵。
?
(3)字符串和json對象栗子
json字符串
var str1 = '{"key": "test1","value": 123,"type": "number","required": "true","description": "字段描述2","children": []}'就是在對象的基礎(chǔ)上前后加上‘,’。
?
json對象:
var str2 = {"key": "test1","value": 123,"type": "number","required": "true","description": "字段描述2","children": []}?
二、json字符串轉(zhuǎn)換成json對象 (字符串-->JSON對象)
方法有三種:轉(zhuǎn)換函數(shù),jq的轉(zhuǎn)換函數(shù),eval()方法
方法1--轉(zhuǎn)換函數(shù):JSON.parse()方法
var a = '{"a":2}'; JSON.parse(a); //{a:2}
注意:IE8(兼容模式)ok,但是IE6和IE7沒有JSON對象,需要額外引入json.js或者json2.js。
方法2:parseJSON()方法? ,將字符串轉(zhuǎn)換成非字符串
用的是jquery的插件
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉(zhuǎn)換成json對象反過來,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();
方法3:eval()方法
eval()函數(shù)可計(jì)算某一個字符串,并執(zhí)行其中的javascript代碼。
var s = '{a:2}'; eval('(' + s + ')'); //將json字符串轉(zhuǎn)成json對象,需要在字符串外包裹一對括號(), {a:2}?
注意事項(xiàng):IE8(兼容模式),IE7和IE6也可以使用eval()方法將字符串轉(zhuǎn)成json對象,但是不推薦使用,因?yàn)檫@種方式不安全eval會執(zhí)行接送字符串的表達(dá)式.
圖中a的值對應(yīng)的是表達(dá)式2+4,當(dāng)執(zhí)行eval()方法時候,已經(jīng)把表達(dá)式的值計(jì)算出來了,值為6。?
?
三、json對象轉(zhuǎn)換成字符串(json對象-->字符串)
方法--轉(zhuǎn)換函數(shù):JSON.stringify()方法 ,將非字符串轉(zhuǎn)成字符串。
var s = {'a':2}; JSON.stringify(s); //"{"a":2}"?
?四、將值轉(zhuǎn)換成字符串(值-->字符串)
方法有三種:轉(zhuǎn)換函數(shù)toString(),弱類型轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換
方法1--轉(zhuǎn)換函數(shù):value.toString()? ? 將數(shù)值轉(zhuǎn)成對應(yīng)進(jìn)制的字符串
var n =8; n.toString(幾進(jìn)制);注意:不能將null和undefined轉(zhuǎn)換成字符串?
?
方法2--弱類型轉(zhuǎn)換:value + ''? ? 將值轉(zhuǎn)換成字符串
2+ ''注意:使用加法運(yùn)算法,配合一個空的字符串,缺點(diǎn)是可讀性差
?
方法3--強(qiáng)制類型轉(zhuǎn)換:String(value)
String(2)
?
?五、字符串轉(zhuǎn)成值(字符串-->值)
方法有三種:轉(zhuǎn)換函數(shù),強(qiáng)制類型轉(zhuǎn)換,js變量弱類型轉(zhuǎn)換
在js讀取文本框或者其它表單數(shù)據(jù)的時候獲得的值是字符串類型的。
方法1--轉(zhuǎn)換函數(shù):parseInt()和parseFloat()
parseInt("1234blue"); //returns 1234 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2 parseFloat("1234blue"); //returns 1234.0 parseFloat("22.5"); //returns 22.5 parseFloat("blue"); //returns NaN?
方法2--強(qiáng)制類型轉(zhuǎn)換
Number(value)——把給定的值轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù));
Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "5.5 ") 5.5 Number( "56 ") 56 Number( "5.6.7 ") NaN?
方法3--js弱類型轉(zhuǎn)換
var str= '012.345 '; var x = str-0; //輸出12.345先看一下上面的例子,只進(jìn)行了算術(shù)運(yùn)算,實(shí)現(xiàn)了字符串到數(shù)字的類型轉(zhuǎn)換,不過這個方法還是不推薦的;
?
PS:小數(shù)的四舍五入
1、四舍五入
var num =2.4492425542; num = num.toFixed(2); // 輸出結(jié)果為 2.452、不四舍五入
把小數(shù)變成整數(shù)
Math.floor(15.7784514000 * 100) / 100 // 輸出結(jié)果為 15.77當(dāng)成字符串,使用正則匹配
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) // 輸出結(jié)果為 15.77,不能用于整數(shù)如 10 必須寫為10.0000注意:如果是負(fù)數(shù),請先轉(zhuǎn)換為正數(shù)再計(jì)算,最后轉(zhuǎn)回負(fù)數(shù)
?
posted on 2018-03-28 23:21 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/8667122.html
總結(jié)
以上是生活随笔為你收集整理的json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习之路 (六)爬虫(五)爬
- 下一篇: 花呗利息一天多少