當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSON.stringify用法
生活随笔
收集整理的這篇文章主要介紹了
JSON.stringify用法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、是什么
JSON.stringify 方法將某個對象轉(zhuǎn)換成 JSON 字符串形式
2、語法
語法: 可以有三個參數(shù),第一個是傳入要序列化的值,第二個為函數(shù)或者數(shù)組,第三個是文本添加縮進(jìn)、空格和換行符
- value:第一個參數(shù),將要序列后成 JSON 字符串的值。
- replacer:【可選】第二個參數(shù)
(1) 如果該參數(shù)是一個函數(shù),則在序列化過程中,被序列化的值的每個屬性都會經(jīng)過該函數(shù)的轉(zhuǎn)換和處理;
(2) 如果參數(shù)是一個數(shù)組,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員。成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。
(3) 如果該參數(shù)為未提供或者null ,則對象所有的屬性都會被序列化。 - space:【可選】第三個參數(shù),美化文本格式,文本添加縮進(jìn)、空格和換行符,
(1) 如果 該參數(shù) 是一個數(shù)字,則返回值文本在每個級別縮進(jìn)指定數(shù)目的空格
(2) 該參數(shù)最大值為10,如果 該參數(shù)大于 10,則文本縮進(jìn) 10 個空格。
(3)該參數(shù)也可以使用非數(shù)字,如:\t。最大值為10
3、replacer用法
參數(shù)replacer: 為函數(shù)的時候
第一種情況為函數(shù)的時候,則它有兩個參數(shù),鍵(key) 和 值(value),并且兩個參數(shù)都會被序列化。我們可以通過此函數(shù)過濾一些我們要操作的鍵值
- 序列化傳入為對象時,若 replacer 函數(shù)返回 undefined 或者函數(shù),則值會被忽略 // repalcer 接受兩個參數(shù) key value function replacer(key, value) { // key value 分別為對象的每個鍵值對if (typeof value === "string") {return undefined ;}return value; } const userInfo= {name: 'zs',age: 20,sex: '男' } console.log(JSON.stringify(userInfo, replacer)); // {"age":20} - 序列化傳的是數(shù)組,若 replacer 函數(shù)返回 undefined ,當(dāng)前值不會被忽略,而將會被 null 取代。 function replacer(key, value) { // key value 分別為對象的每個鍵值對if (typeof value === "string") {return undefined ;}return value; } const foodList= ['蘋果',1,'2',222] console.log(JSON.stringify(foodList, replacer)); // [null,1,null,222]參數(shù)replacer:為數(shù)組時
則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員
const userInfo= {name: 'zs',age: 20,sex: '男' } console.log(JSON.stringify(userInfo, ['name','sex'])); //{"name":"zs","sex":"男"}4、注意點
- 布爾值、數(shù)字、字符串的包裝對象在序列化過程中會自動轉(zhuǎn)換成對應(yīng)的原始值
- 轉(zhuǎn)換的值如果存在toJSON(),則toJSON() 方法返回什么值,序列化結(jié)果就返回什么值,其余值會被自動忽略
- 出現(xiàn)Date 對象,則JSON.stringify() 會把Date 的值序列化 為時間格式字符串。
- JSON.stringify()只能序列化可枚舉屬性,不可枚舉的屬性默認(rèn)會被自動忽略
- 出現(xiàn)Symbol值,則會被自動忽略
…
總結(jié)
以上是生活随笔為你收集整理的JSON.stringify用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官:说一下List排序方法
- 下一篇: 使用ArcGIS JavaScript