當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSON.stringify的认知历程
生活随笔
收集整理的這篇文章主要介紹了
JSON.stringify的认知历程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
階段 1
初入前端,認識到JSON.stringify可以序列化對象為一個字符串,在開發中提供了許多便利。
JSON.stringify({ x: 5, y: 6 }); //"{"x":5,"y":6}"階段 2
然后遇到一個需求是序列化字符串,且帶有縮進格式化的方式顯示在編輯器中。
才認識到,原來這個方法還可以傳遞3個參數。
第3個參數用于指定縮進用的空白字符串,用于美化輸出(pretty-print)。
JSON.stringify({ x: 5, y: 6, z: {a: 1} }, null, 2); /* "{"x": 5,"y": 6,"z": {"a": 1} }" */階段 3
再然后,我遇到了一個問題:
如果對象中屬性的值是undefined,那么序列化之后這個屬性會被忽略。
let person = {name: undefined, hobby: null, age: 18 }; JSON.stringify(person) // "{"hobby":null,"age":18}"然而在業務上即使該屬性的值是undefined,也是有表達特殊含義的,必然需要傳遞。
原來此函數的第二個參數可以搞事情,如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理;
JSON.stringify(person, (k,v) => v===undefined ? null : v ); // "{"name":null,"hobby":null,"age":18}"第二個參數還可以是一個數組。表示序列化后保留的屬性
let person = {name: undefined, hobby: null, age: 18 }; JSON.stringify(person,["age"])// "{"age":18}"更多用法官方文檔JSON.stringify()很詳細
總結
以上是生活随笔為你收集整理的JSON.stringify的认知历程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue.js框架:数组的各种变异方法
- 下一篇: jeesite使用心得(二)