3 回答

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊
jQuery.parseJSON()函數(shù)用于將格式完好的JSON字符串轉(zhuǎn)為與之對應(yīng)的JavaScript對象。
所謂"格式完好",就是要求指定的字符串必須符合嚴(yán)格的JSON格式,例如:屬性名稱必須加雙引號、字符串值也必須用雙引號。
如果傳入一個格式不"完好"的JSON字符串將拋出一個JS異常,例如:以下字符串均符合JSON格式,但它們不是格式完好的JSON字符串(因此會拋出異常):
// 以下均是字符串值,省略了兩側(cè)的引號,以便于展現(xiàn)內(nèi)容
{id: 1} // id是屬性名稱,必須加雙引號
{'id': 1} // id是屬性名稱,必須用雙引號(不能用單引號)
{"name": 'CodePlayer'} // name屬性的值是字符串,必須用雙引號(不能用單引號)
JSON標(biāo)準(zhǔn)不允許字符串中出現(xiàn)"控制字符",例如:一個Tab或換行符。
$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多數(shù)情況下,它會拋出一個錯誤,因為JS解析器會將字符串中的\t或\n等轉(zhuǎn)義直接視作字面值,起到Tab或換行的效果。
//正確寫法應(yīng)該如下(使用兩個反斜杠,以免被JS解析器直接轉(zhuǎn)義\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');
如果瀏覽器提供了一個本地的JSON.parse()方法,則jQuery將使用它來解析JSON字符串。
在jQuery 1.9之前(不含1.9):如果傳入一個空字符串、null或undefined,該函數(shù)將返回null,而不是拋出一個錯誤,即使它不是有效的JSON字符串。
該函數(shù)屬于全局的jQuery對象。
添加回答
舉報