jquery 的JSON.parse JSON.stringify 和parseJSON 方法的區別使用

1.JSON.parse(str) 用於從一個字符串中解析出json對象,如

var str = '{"name":"huangxiaojian","age":"23"}'json

結果:函數

JSON.parse(str)spa

Object
  1. age"23"
  2. name"huangxiaojian"
  3. __proto__Object

注意:單引號寫在{}外,每一個屬性名都必須用雙引號,不然會拋出異常。code

 

2.JSON.stringify(a) 用於從一個對象解析出字符串,如

var a = {a:1,b:2}orm

結果:對象

JSON.stringify(a)ip

"{"a":1,"b":2}"字符串

 

3.jQuery.parseJSON()函數用於將格式無缺的JSON字符串轉爲與之對應的JavaScript對象

所謂"格式無缺",就是要求指定的字符串必須符合嚴格的JSON格式,例如:屬性名稱必須加雙引號、字符串值也必須用雙引號。

a:若是傳入一個格式不"無缺"的JSON字符串將拋出一個JS異常,例如:如下字符串均符合JSON格式,但它們不是格式無缺的JSON字符串(所以會拋出異常):string

// 如下均是字符串值,省略了兩側的引號,以便於展示內容

{id: 1} // id是屬性名稱,必須加雙引號
{'id': 1} // id是屬性名稱,必須用雙引號(不能用單引號)
{"name": 'CodePlayer'} // name屬性的值是字符串,必須用雙引號(不能用單引號)

b:JSON標準不容許字符串中出現"控制字符",例如:一個Tab或換行符。it

$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多數狀況下,它會拋出一個錯誤,由於JS解析器會將字符串中的\t或\n等轉義直接視做字面值,起到Tab或換行的效果。

//正確寫法應該以下(使用兩個反斜槓,以避免被JS解析器直接轉義\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');
相關文章
相關標籤/搜索