JSON對象的序列化和反序列化


方法:

  序列化 JSON.stringify(json)

       反序列化 JSON.parse(jsonStr)

API詳解:

JSON.stringify(json[, replacer [, space]])
  • json, 即將被序列化的json對象
  • replacer, 數組或函數;數組可用來指定僅序列化哪些指定的屬性;函數將在json每個屬性實現序列化時都進行調用,用作后續處理
  • space, 數字或字符串,用於美化輸出;數字表示每一級別縮進多少個空格;字符串則使用該字符串作為每一級的縮進

注意事項:

  1. 不可枚舉的屬性會被忽略
  2. 值為undefined、函數、Symbol的屬性在對象序列化是會被忽略;若undefined、函數、Symbol出現在數組中,序列化時將被置為null
  3. symbol屬性會被忽略,即使replacer強制包含該屬性

詳細信息參見:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

 

JSON.parse(jsonStr[, reviver])
  • jsonStr,即將反序列化的json字符串
  • reviver,函數,在對每個屬性值反序列化生成值的時候會調用該函數

注意事項:

  1. reviver 函數使用時需注意在解析到最頂層時,key為"",通常需要過濾掉該屬性進行值的后續處理
  2. 遍歷順序為:層級優先,內層優先
  3. 不允許jsonStr中以,號結尾,例:"{a:1,}"

詳細信息參見:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM