您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關JSON stringify的原理和使用方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
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 = [ {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 = [ {name: "王尼瑪", sex:1, age: 30}, {name: "王尼美", sex:0, age: 20}, {name: "王大錘", sex:1, age: 30} ]; for (var i=0, new_data=[]; i<data.length; i++) { new_data.push({ name: data[i].name, sex: data[i].sex }); } var str_json = JSON.stringify(new_data); console.log(str_json);
確實分分鐘搞定。
其實我們只需要用stringify第二個參數即可簡單處理這種問題。
var data = [ {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 = [ {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 = [ {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的原理和使用方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。