1.JSON.parse(str) 用於從一個字符串中解析出json對象,如
var str = '{"name":"huangxiaojian","age":"23"}'
結果:
JSON.parse(str)
Object
- age: "23"
- name: "huangxiaojian"
- __proto__: Object
注意:單引號寫在{}外,每個屬性名都必須用雙引號,否則會拋出異常。
2.JSON.stringify(a) 用於從一個對象解析出字符串,如
var a = {a:1,b:2}
結果:
JSON.stringify(a)
"{"a":1,"b":2}"
3.jQuery.parseJSON()
函數用於將格式完好的JSON字符串轉為與之對應的JavaScript對象。
所謂"格式完好",就是要求指定的字符串必須符合嚴格的JSON格式,例如:屬性名稱必須加雙引號、字符串值也必須用雙引號。
a:如果傳入一個格式不"完好"的JSON字符串將拋出一個JS異常,例如:以下字符串均符合JSON格式,但它們不是格式完好的JSON字符串(因此會拋出異常):
// 以下均是字符串值,省略了兩側的引號,以便於展現內容
{id: 1} // id是屬性名稱,必須加雙引號
{'id': 1} // id是屬性名稱,必須用雙引號(不能用單引號)
{"name": 'CodePlayer'} // name屬性的值是字符串,必須用雙引號(不能用單引號)
b:JSON標准不允許字符串中出現"控制字符",例如:一個Tab或換行符。
$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多數情況下,它會拋出一個錯誤,因為JS解析器會將字符串中的\t或\n等轉義直接視作字面值,起到Tab或換行的效果。
//正確寫法應該如下(使用兩個反斜杠,以免被JS解析器直接轉義\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');