JSON.parse 函數 (JavaScript)

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

一、語法:

    JSON.parse(text [, reviver])

二、參數:

  • text

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

  • reviver

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

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

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

    • 如果 reviver 返回 null 或 undefined,則刪除了該成員。

三、返回值:

    一個對象或數組。

四、異常:

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

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

    例如,如果響應的格式爲 JSONP 而非純 JSON,請在響應對象上嘗試此代碼:

    var fixedResponse = response.responseText.replace(/\\'/g"'"); 
    var jsonObj = JSON.parse(fixedResponse);
  • 確保通過 JSON 兼容的實現(如 text)對 JSON.stringify 參數進行序列化。

  • 在 JSON 驗證程序(如 JSLint)中運行 text 參數以幫助找到語法錯誤。

示例

以下示例使用 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); 
document.write(contact.phone[1]); 
// Output: 
// Aaberg, Jesper 
// 555-0100

示例

以下示例演示瞭如何使用 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: 
// ["a","b","c"] 
// c 
// b 
// a

示例

reviver 函數通常用於將國際標準化組織 (ISO) 日期字符串的 JSON 表示形式轉換爲協調世界時 (UTC) 格式日期對象。 此示例使用 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) { 
            return new Date(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 8 和 Windows Phone 8.1)中受支持。請參閱 版本信息

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


五、參閱

JSON.stringify 函數 (JavaScript)
toJSON 方法 (Date) (JavaScript)

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