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