json字符串轉換成json對象,json對象轉換成字符串,值轉換成字符串,字符串轉成值

主要內容:javascript

1、json相關概念html

2、json字符串轉換成json對象 (字符串-->JSON對象)java

3、json對象轉換成字符串(json對象-->字符串)jquery

4、將值轉換成字符串(值-->字符串)算法

5、字符串轉成值(字符串-->值)json

 

同步的交流學習社區:http://www.mwcxs.top/page/425.htmlapi

1、json相關概念數組

json,全稱爲javascript object notation,是一種輕量級的數據交互格式。採用徹底獨立於語言的文本格式,是一種理想的數據交換格式。安全

同時,json是javascript是原生格式,因此javascript操做處理json不須要任何包,api,任何依賴。函數

json中有兩個結構:(1)數組(2)對象

(1)什麼是數組

數組就是以"["開始,以「]」結束的,值之間運用 「,」(逗號)分隔。

好比:

[{
        "key": "test1",
        "value": 123,
        "type": "number",
        "required": "true",
        "description": "字段描述2",
        "children": []
    }, {
        "key": "test2",
        "value": 345,
        "type": "boolean",
        "required": "true",
        "description": "字段描述4",
        "children": []
    }]

children是一個數組,數組裏有兩個值,值也就是一個對象。

 

(2)什麼是對象

對象就是以「{」開始,以「}」結束的,後邊跟着每一對鍵值,鍵與值之間使用冒號分隔開。若是值是字符,則必須用引號,數值型則不需要。

{
        "key": "test1",
        "value": 123,
        "type": "number",
        "required": "true",
        "description": "字段描述2",
        "children": []
    }

在數據傳輸中,json是以文本,即字符串的形式傳遞的,而js操做json對象,因此json對象和json字符串之間的轉換是關鍵。

 

(3)字符串和json對象栗子

json字符串

var str1 = '{
        "key": "test1",
        "value": 123,
        "type": "number",
        "required": "true",
        "description": "字段描述2",
        "children": []
    }'

就是在對象的基礎上先後加上‘,’。

 

json對象:

var str2 = {
        "key": "test1",
        "value": 123,
        "type": "number",
        "required": "true",
        "description": "字段描述2",
        "children": []
    }

 

2、json字符串轉換成json對象 (字符串-->JSON對象)

方法有三種:轉換函數,jq的轉換函數,eval()方法

方法1--轉換函數:JSON.parse()方法

var a = '{"a":2}';
JSON.parse(a);  //{a:2}

注意:IE8(兼容模式)ok,可是IE6和IE7沒有JSON對象,須要額外引入json.js或者json2.js。

方法2:parseJSON()方法  ,將字符串轉換成非字符串

用的是jquery的插件

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),能夠將json字符串轉換成json對象

反過來,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();

方法3:eval()方法

eval()函數可計算某一個字符串,並執行其中的javascript代碼。

var s = '{a:2}';
eval('(' + s + ')'); //將json字符串轉成json對象,須要在字符串外包裹一對括號(),   {a:2}

 

注意事項:IE8(兼容模式),IE7和IE6也能夠使用eval()方法將字符串轉成json對象,可是不推薦使用,由於這種方式不安全eval會執行接送字符串的表達式.

圖中a的值對應的是表達式2+4,當執行eval()方法時候,已經把表達式的值計算出來了,值爲6。 

 

3、json對象轉換成字符串(json對象-->字符串)

方法--轉換函數:JSON.stringify()方法 ,將非字符串轉成字符串。

var s = {'a':2};
JSON.stringify(s);  //"{"a":2}"

 

 4、將值轉換成字符串(值-->字符串)

方法有三種:轉換函數toString(),弱類型轉換,強制類型轉換

方法1--轉換函數:value.toString()    將數值轉成對應進制的字符串

var n =8;
n.toString(幾進制);

注意:不能將null和undefined轉換成字符串 

 

方法2--弱類型轉換:value + ''    將值轉換成字符串

2+ ''

注意:使用加法運算法,配合一個空的字符串,缺點是可讀性差

 

方法3--強制類型轉換:String(value)

String(2)

 

 5、字符串轉成值(字符串-->值)

方法有三種:轉換函數,強制類型轉換,js變量弱類型轉換

在js讀取文本框或者其它表單數據的時候得到的值是字符串類型的。

方法1--轉換函數: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--強制類型轉換

Number(value)——把給定的值轉換成數字(能夠是整數或浮點數);

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弱類型轉換

var str= '012.345 ';
var x = str-0;      //輸出12.345

先看一下上面的例子,只進行了算術運算,實現了字符串到數字的類型轉換,不過這個方法仍是不推薦的;

 

PS:小數的四捨五入

一、四捨五入

var num =2.4492425542;  
num = num.toFixed(2); // 輸出結果爲 2.45 

二、不四捨五入

把小數變成整數

Math.floor(15.7784514000 * 100) / 100   // 輸出結果爲 15.77  

當成字符串,使用正則匹配

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/))    
// 輸出結果爲 15.77,不能用於整數如 10 必須寫爲10.0000  

注意:若是是負數,請先轉換爲正數再計算,最後轉回負數

相關文章
相關標籤/搜索