欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解JavaScript中JSON.stringify方法

 更新時間:2023年09月06日 08:29:18   作者:編程三昧  
JSON 對象是我們經(jīng)常使用的一種數(shù)據(jù)存儲對象,它的適用范圍非常廣,JSON.stringify 方法可以幫我們把一個對象或數(shù)組轉(zhuǎn)換成一個 JSON字符串,本文我們給大家詳細介紹一下JavaScript中JSON.stringify方法,需要的朋友可以參考下

JSON 對象是我們經(jīng)常使用的一種數(shù)據(jù)存儲對象,它的適用范圍非常廣。

而 JSON.stringify 方法的使用頻率也極高,合理使用 stringify 方法,我們可以實現(xiàn)很多簡單需求:

  • 要實現(xiàn)對象的深拷貝時,我們可以用 JSON 對象的 JSON.stringify 和 JSON.parse 來拷貝一個完全一樣的對象,而不會對原對象產(chǎn)生任何引用關(guān)系。
  • 在使用 localStorage 時,也會用到它,因為 localStorage 只能存儲字符串格式的內(nèi)容,所以,我們在存之前,將數(shù)值轉(zhuǎn)換成 JSON字符串。

JSON.stringify

JSON.stringify 方法可以幫我們把一個對象或數(shù)組轉(zhuǎn)換成一個 JSON字符串。

我們通常只會用到它的第一個參數(shù),其實它還有另外兩個參數(shù),可以讓它實現(xiàn)一些非常好用的功能。

語法:

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

參數(shù):

  • value:將要被序列化的變量的值
  • replacer:替代器??梢允呛瘮?shù)或者是數(shù)組:
    • 如果是一個函數(shù),則value 每個屬性都要經(jīng)過這個函數(shù)的處理,該函數(shù)的返回值就是最后被序列化后的值。
    • 如果是一個數(shù)組,則要求該數(shù)組的元素是字符串,且這些元素會被當(dāng)做value 的鍵(key)進行匹配,最后序列化的結(jié)果,是只包含該數(shù)組每個元素為key 的值。
  • space:指定輸出數(shù)值的代碼縮進,美化格式之用,可以是數(shù)字或者字符串:
    • 如果是數(shù)字(最大為10)的話,代表每行代碼的縮進是多少個空格。
    • 如果是字符串的話,該字符串(最多前十個字符)將作顯示在每行代碼之前。

這時候,你應(yīng)該知道了。我們可以用 JSON.stringify 來做序列化時的過濾,相當(dāng)于我們可以自定義JSON.stringify 的解析邏輯。

使用函數(shù)過濾并序列化對象

function replacer(key, value) {
    if (typeof value === "string") {
        return undefined;
    }
    return value;
}
var foo = {
    foundation: "Mozilla",
    model: "box",
    week: 45,
    transport: "car",
    month: 7
};
var jsonString = JSON.stringify(foo, replacer); // {"week":45,"month":7}

使用數(shù)組過濾并序列化對象

const user = {
    name: "zollero",
    nick: "z",
    skills: ["JavaScript", "CSS", "HTML5"]
};
JSON.stringify(user, ["name", "skills"], 2); 
// "{//   "name": "zollero",//   "skills": [//     "JavaScript",//     "CSS",//     "HTML5"http://   ]// }"

還有一個有意思的東西,是對象的toJSON 屬性。

如果一個對象有toJSON 屬性,當(dāng)它被序列化的時候,不會對該對象進行序列化,而是將它的toJSON 方法的返回值進行序列化。

看下面的例子:

var obj = {
    foo: "foo",
    toJSON: function () {
        return "bar";
    }
};
JSON.stringify(obj); 
// '"bar"'JSON.stringify({x: obj}); // '{"x":"bar"}'

總結(jié)

stringify 方法的重點和難點在于第二和第三個參數(shù)的靈活使用上,需要多加練習(xí)。

到此這篇關(guān)于詳解JavaScript中JSON.stringify方法的文章就介紹到這了,更多相關(guān)JavaScript JSON.stringify方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論