『壹』 jsON.parse和JSON.stringify的區別
1.parse 用於從一個字元串中解析出json 對象。例如
var str='{"name":"cpf","age":"23"}'
經 JSON.parse(str) 得到:
Object:
age:"23"
name:"cpf"
_proto_:Object
ps:單引號寫在{}外,每個屬性都必須雙引號,否則會拋出異常
2.stringify用於從一個對象解析出字元串,例如
var a={a:1,b:2}
經 JSON.stringify(a)得到:
「{「a」:1,"b":2}」
JSON.stringify,這個函數的作用主要是為了系列化對象的。(或者說是將原來的對象轉換為字元串的,如json對象):
首先定義一個json對象,var jsonObject = { "UserID": "1", "UserName": "xiaozhang" };
使用alert(jsonObject)彈出一下,顯示:
[Object
Object]
然後調用一下JSON.stringify一下,將json對象轉換為json字元串。
var
jsontext = JSON.stringify(jsonObject);
alert(jsontext);
顯示如下:
{
"UserID":
"1",
"UserName":
"xiaozhang"
}
2、jQuery.parseJSON,將一個JSON字元串轉換為JSON對象(JSON.parse也是將一個json字元串解析為json對象),如下面
首先定義一個JSON字元串,var c = '{"name":"Mike","sex":"男","age":"29"}';(注意:單引號寫在{}外,每個屬性名都必須用雙引號,否則會拋出異常。)
然後調用jQuery.parseJSON將其轉換為JSON對象,
var
employeejson=jQuery.parseJSON(c);
訪問的時候使用employeejson.name,employeejson.sex,employeejson.age獲取相應的值
『貳』 「JSON.parse」和「JSON.stringify」有什麼區別
1.JSON.parse(「要轉換的數組」) 。
2.JSON.stringify(「要轉化的數組」)。
3.首先,兩個方版法的用法是有差別的。
①.JSON.stringify是從一個對象權中解析出字元串。
②.JSON.parse是從一個字元串中解析出json(鍵值對)。
4.所以在使用的時候如果參數不對應,就不能正確轉換。
『叄』 JSON.parse解析特殊字元報錯的解決辦法
let str = JSON.stringify(arr)
str = encodeURIComponent(str)
<-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->
arr = JSON.parse(decodeURIComponent(str)) // 再還原
《=====================================================》
JSON.stringify() : 用於將 javaScript 值轉換為 JSON 字元串;
JSON.parse() :用於將一個 JSON 字元串轉換為對象;
encodeURIComponent() :可把字元串作為 URI 組件進行編碼,該方法不會對 ASCII 字母和數晌纖字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) ,其他字元(比如 :;/?:@&=+$,# 這鏈租些用於分隔 URI 組件的標點符號),都是由一個或多個十六進制宴喚仿的轉義序列替換的(鏈接:https://www.runoob.com/js/javascript-json-stringify.html);
decodeURIComponent() :可對 encodeURIComponent() 函數編碼的 URI 進行解碼(鏈接:https://www.runoob.com/jsref/jsref-decodeuricomponent.html)。