亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解JavaScript中JSON.stringify方法

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

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

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

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

JSON.stringify

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

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

語法:

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

參數(shù):

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

這時(shí)候,你應(yīng)該知道了。我們可以用 JSON.stringify 來做序列化時(shí)的過濾,相當(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://   ]// }"

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

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

看下面的例子:

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

總結(jié)

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

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

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)表格前后臺分頁

    微信小程序?qū)崿F(xiàn)表格前后臺分頁

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)表格前后臺分頁,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 微信小程序使用ECharts的示例詳解

    微信小程序使用ECharts的示例詳解

    echarts-for-weixin是ECharts官方維護(hù)的一個(gè)開源項(xiàng)目,提供了一個(gè)微信小程序組件,可以通過這個(gè)組件在微信小程序中使用?ECharts?繪制圖表。本文將通過示例詳解微信小程序使用ECharts的方法,感興趣的可以了解一下
    2022-06-06
  • javascript 系統(tǒng)文件夾文件操作及參數(shù)介紹

    javascript 系統(tǒng)文件夾文件操作及參數(shù)介紹

    javascript文件操作包括寫入文件、當(dāng)前目錄文件、讀文件、刪除文件、批量刪除,未刪除文件夾,刪除不了當(dāng)前目錄文件等等,感興趣的朋友可以參考下
    2013-01-01
  • ES6 系列之 WeakMap的使用示例

    ES6 系列之 WeakMap的使用示例

    這篇文章主要介紹了ES6 系列之 WeakMap的使用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • ES6?Promise.all的使用方法以及其細(xì)節(jié)詳解

    ES6?Promise.all的使用方法以及其細(xì)節(jié)詳解

    Promise對象用于表示一個(gè)異步操作的最終完成(或失敗)及其結(jié)果值,下面這篇文章主要給大家介紹了關(guān)于ES6?Promise.all的使用方法以及其細(xì)節(jié)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • iframe 異步加載技術(shù)及性能分析

    iframe 異步加載技術(shù)及性能分析

    我們會經(jīng)常使用iframes來加載第三方的內(nèi)容、廣告或者插件。使用iframe是因?yàn)樗梢院椭黜撁娌⑿屑虞d,不會阻塞主頁面。
    2011-07-07
  • 用RadioButten或CheckBox實(shí)現(xiàn)div的顯示與隱藏

    用RadioButten或CheckBox實(shí)現(xiàn)div的顯示與隱藏

    用RadioButten(或CheckBox)實(shí)現(xiàn)div的顯示與隱藏,當(dāng)選擇“女”時(shí),顯示“美女、才女”;當(dāng)選擇“男”時(shí)隱藏,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-09-09
  • js重寫alert控件(適合學(xué)習(xí)js的新手朋友)

    js重寫alert控件(適合學(xué)習(xí)js的新手朋友)

    這篇文章主要介紹js重寫alert控件的過程比較適合學(xué)習(xí)js的新手朋友,需要的朋友可以參考下
    2014-08-08
  • js特殊字符過濾的示例代碼

    js特殊字符過濾的示例代碼

    本篇文章主要是對js特殊字符過濾的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • JavaScript運(yùn)行過程中的“預(yù)編譯階段”和“執(zhí)行階段”

    JavaScript運(yùn)行過程中的“預(yù)編譯階段”和“執(zhí)行階段”

    這篇文章主要介紹了JavaScript運(yùn)行過程中的“預(yù)編譯階段”和“執(zhí)行階段”的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評論