JSON.parse 函數 (JavaScript)

將 JavaScript 對象表示法 (JSON) 字符串轉換爲對象。

JSON.parse(text [, reviver])
參數
text

必需。 一個有效的 JSON 字符串。

reviver

可選。 一個轉換結果的函數。 將爲對象的每個成員調用此函數。 如果成員包含嵌套對象,則先於父對象轉換嵌套對象。 對於每個成員,會發生以下情況:

  • 如果 reviver 返回一個有效值,則成員值將替換爲轉換後的值。

  • 如果 reviver 返回它接收的相同值,則不修改成員值。

  • 如果 reviver 返回 nullundefined,則刪除成員。

返回值

一個對象或數組。

異常

如果此函數引發 JavaScript 分析器錯誤(如“SCRIPT1014:無效字符”),則輸入文本將不遵循 JSON 語法。 若要更正此錯誤,請執行下列操作之一:

  • 修改 text 參數以遵循 JSON 語法。 有關更多信息,請參見 JSON 對象的 BNF syntax notation(BNF 語法表示法)。

  • 確保通過 JSON 兼容的實現對文本參數進行序列化,例如 JSON.stringify

示例

以下示例使用 JSON.parse 將 JSON 字符串轉換成對象。

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';

var contact = JSON.parse(jsontext);

document.write(contact.surname + ", " + contact.firstname);


// Output: Aaberg, Jesper

以下示例演示瞭如何使用 JSON.stringify 將數組轉換成 JSON 字符串,然後使用 JSON.parse 將該字符串還原成數組。

var arr = ["a", "b", "c"];

var str = JSON.stringify(arr);

document.write(str);

document.write ("<br/>");


var newArr = JSON.parse(str);


while (newArr.length > 0) {

document.write(newArr.pop() + "<br/>");

}


// Output:

var arr = ["a", "b", "c"];

var str = JSON.stringify(arr);

document.write(str);

document.write ("<br/>");


var newArr = JSON.parse(str);


while (newArr.length > 0) {

document.write(newArr.pop() + "<br/>");

}


// Output:

["a","b","c"]

c

b

a

reviver 函數通常用於將國際標準化組織 (ISO) 日期字符串的 JSON 表示形式轉換爲協調世界時 (UTC) 格式 Date 對象。

此示例使用 JSON.parse 來反序列化 ISO 格式的日期字符串。dateReviver函數爲格式爲 ISO 日期字符串的成員返回Date對象。

var jsontext = '{ "hiredate": "2008-01-01T12:00:00Z", "birthdate": "2008-12-25T12:00:00Z" }';

var dates = JSON.parse(jsontext, dateReviver);

document.write(dates.birthdate.toUTCString());


function dateReviver(key, value) {

var a;

if (typeof value === 'string') {

a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);

if (a) {

returnnewDate(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],

+a[5], +a[6]));

}

}

return value;

};


// Output:

// Thu, 25 Dec 2008 12:00:00 UTC

要求


在以下文檔模式中受到支持:Internet Explorer 8 標準、Internet Explorer 9 標準、Internet Explorer 10 標準、Internet Explorer 11 標準。Windows 應用商店 應用程序中也支持此項。請參閱 版本信息

在以下文檔模式中不受支持:Quirks、Internet Explorer 6 標準模式、Internet Explorer 7 標準模式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章