JSON.stringify() 方法用于將 JavaScript 值轉換為 JSON 字串,
語法
JSON.stringify(value[, replacer[, space]])
引數說明:
-
value:
必需, 要轉換的 JavaScript 值(通常為物件或陣列),
-
replacer:
可選,用于轉換結果的函式或陣列,
如果 replacer 為函式,則 JSON.stringify 將呼叫該函式,并傳入每個成員的鍵和值,使用回傳值而不是原始值,如果此函式回傳 undefined,則排除成員,根物件的鍵是一個空字串:"",
如果 replacer 是一個陣列,則僅轉換該陣列中具有鍵值的成員,成員的轉換順序與鍵在陣列中的順序一樣,
-
space:
可選,文本添加縮進、空格和換行符,如果 space 是一個數字,則回傳值文本在每個級別縮進指定數目的空格,如果 space 大于 10,則文本縮進 10 個空格,space 也可以使用非數字,如:\t,
回傳值:
回傳包含 JSON 文本的字串,
實體
var str = {"name":"菜鳥教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一個引數情況:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四個空格縮進
document.write( "使用引數情況:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化輸出
但是 IE6-7 下沒有 JSON 物件,所以要借助json2.js來實作,
今天我們來簡單介紹下stringify方法的一些正確使用姿勢吧,
當然,讓高手們賤笑了,本文只是分享一些方法給新手朋友們,
var data = https://www.cnblogs.com/KillBugMe/p/[
{name:"王尼瑪", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大錘", sex:1, age: 30}
];
var str_json = JSON.stringify(data);
console.log(str_json);
這個是我們日常用法,非常簡單,對吧,
比如說,我們的資料非常復雜,還有類似頭像,昵稱,個人簽名之類的資訊,
可是我保存在本地,只需要用戶名,和性別,腫么破呢?
也許你會說 so easy, 遍歷資料重新提取下即可,
例如:
var data = https://www.cnblogs.com/KillBugMe/p/[
{name:"王尼瑪", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大錘", sex:1, age: 30}
];
for (var i=0, new_data=https://www.cnblogs.com/KillBugMe/p/[]; i
確實分分鐘搞定,
其實我們只需要用stringify第二個引數即可簡單處理這種問題,
var data = https://www.cnblogs.com/KillBugMe/p/[
{name:"王尼瑪", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大錘", sex:1, age: 30}
];
var str_json = JSON.stringify(data, ["name", "sex"]);
console.log(str_json);
第二個引數只要傳入需要的keys陣列,就非常輕松的就完成這種處理了,
當然如果我們要更糾結的處理,比如要把 1,0 修改為男女,那么第二個引數可以用回呼函式來處理,
var data = https://www.cnblogs.com/KillBugMe/p/[
{name:"王尼瑪", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大錘", sex:1, age: 30}
];
var str_json = JSON.stringify(data, function (k, v) {
if (k === "sex") {
return ["女", "男"][v];
}
return v;
});
console.log(str_json);
第二個引數如此強悍,為我們省去了不少麻煩,
還有第三個引數,用于格式化字串用的,
var data = https://www.cnblogs.com/KillBugMe/p/[
{name:"王尼瑪", sex:1, age: 30},
{name: "王尼美", sex:0, age: 20},
{name: "王大錘", sex:1, age: 30}
];
var str_json = JSON.stringify(data, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);
其實,我覺得這是個非常雞肋的功能,,一般情況下卻是沒啥用,
好了,今天的分享就這些了,希望對新手朋友有所幫助,
參考資料:
JSON.stringify() - JavaScript | MDN
JSON in JavaScript
文章來自:
https://www.cnblogs.com/52cik/p/js-json-stringify.html#undefined
https://www.runoob.com/js/javascript-json-stringify.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/144613.html
標籤:JavaScript
下一篇:js作用域和作用域鏈
