JSON.stringify 函數 (JavaScript)
將 JavaScript 值轉換為 JavaScript 對象表示法 (Json) 字符串。
JSON.stringify(value [, replacer] [, space])
一個包含 JSON 文本的字符串。
如果 value 具有 toJSON 方法,則 JSON.stringify 函數將使用該方法的返回值。 如果 toJSON 方法的返回值為undefined,則不轉換成員。 這使對象能夠確定自己的 JSON 表示形式。
將不會轉換不具有 JSON 表示形式的值,例如 undefined。 在對象中,將丟棄這些值。 在數組中,會將這些值替換為 null。
字符串值以引號開始和結束。 所有 Unicode 字符可括在引號中,但必須使用反斜杠進行轉義的字符除外。 以下字符的前面必須是反斜杠:
-
引號 (")
-
反斜杠 (\)
-
退格鍵 (b)
-
換頁符 (f)
-
換行符 (n)
-
回車符 (r)
-
水平制表符 (t)
-
四個十六進制數字 (uhhhh)
此示例使用 JSON.stringify 將 contact 對象轉換為 JSON 文本。 定義 memberfilter 數組以便只轉換 surname 和phone 成員。 省略 firstname 成員。
var contact = new Object(); contact.firstname = "Jesper"; contact.surname = "Aaberg"; contact.phone = ["555-0100", "555-0120"]; var memberfilter = new Array(); memberfilter[0] = "surname"; memberfilter[1] = "phone"; var jsonText = JSON.stringify(contact, memberfilter, "\t"); document.write(jsonText); // Output: // { "surname": "Aaberg", "phone": [ "555-0100", "555-0120" ] }
此示例將 JSON.stringify 與一個數組一起使用。 replaceToUpper 函數將數組中的每個字符串轉換為大寫形式。
var continents = new Array(); continents[0] = "Europe"; continents[1] = "Asia"; continents[2] = "Australia"; continents[3] = "Antarctica"; continents[4] = "North America"; continents[5] = "South America"; continents[6] = "Africa"; var jsonText = JSON.stringify(continents, replaceToUpper); function replaceToUpper(key, value) { return value.toString().toUpperCase(); } //Output: // "EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA"
此示例使用 toJSON 方法將字符串值轉換為大寫形式。
var contact = new Object(); contact.firstname = "Jesper"; contact.surname = "Aaberg"; contact.phone = ["555-0100", "555-0120"]; contact.toJSON = function(key) { var replacement = new Object(); for (var val in this) { if (typeof (this[val]) === 'string') replacement[val] = this[val].toUpperCase(); else replacement[val] = this[val] } return replacement; }; var jsonText = JSON.stringify(contact); document.write(jsonText); // Output: {"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]} '{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}' */
在以下文檔模式中受到支持: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 標准模式。