javascript 中的JSON.stringify - 將對象和數組轉換為json格式(來源於網絡)


 
 
 

JSON.stringify 函數 (JavaScript)

 

將 JavaScript 值轉換為 JavaScript 對象表示法 (Json) 字符串。

 
 
JSON.stringify(value [, replacer] [, space])

參數
 
value

必需。 要轉換的 JavaScript 值(通常為對象或數組)。

replacer

可選。 用於轉換結果的函數或數組。

如果 replacer 為函數,則 JSON.stringify 將調用該函數,並傳入每個成員的鍵和值。 使用返回值而不是原始值。 如果此函數返回 undefined,則排除成員。 根對象的鍵是一個空字符串:""。

如果 replacer 是一個數組,則僅轉換該數組中具有鍵值的成員。 成員的轉換順序與鍵在數組中的順序一樣。當 value 參數也為數組時,將忽略 replacer 數組。

space

可選。 向返回值 JSON 文本添加縮進、空格和換行符以使其更易於讀取。

如果省略 space,則將生成返回值文本,而沒有任何額外空格。

如果 space 是一個數字,則返回值文本在每個級別縮進指定數目的空格。 如果 space 大於 10,則文本縮進 10 個空格。

如果 space 是一個非空字符串(例如“\t”),則返回值文本在每個級別中縮進字符串中的字符。

如果 space 是長度大於 10 個字符的字符串,則使用前 10 個字符。

一個包含 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 標准模式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM