2023-3-31 前端達人
- JSON是獨立于任何編程語言的數據格式
- 是一種用于存儲和傳輸數據的輕量級格式
- 語法是自描述的,便于人類閱讀和理解
- 數組(Array)用方括號 "[]" 表示
- 對象(0bject)用大括號 "{}" 表示
- 名稱 / 值 對(name/value)組合成數組和對象
- 名稱( name )置于雙引號中,值(value)有字符串、數值、布爾值、null、對象和數組
- 并列的數據之間用逗號 "," 分隔
- 名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值
JSON.parse(str, reviver);
str
:要解析的 JSON字符串reviver
:可選的函數function(key,value)
,該函數的第一個參數和第二個參數分別代表鍵值對的鍵和值,并可以對值進行轉換(函數返回值當做處理后的value)
JSON.stringify(value, replacer, space)
- 如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理
- 如果該參數是一個數組,則只有包含在這個數組中的屬性名才會被序列化到最終的 JSON 字符串中
- 如果該參數為 null 或者未提供,則對象所有的屬性都會被序列化
- 如果參數是個數字,它代表有多少的空格;上限為10。該值若小于1,則意味著沒有空格
- 如果該參數為字符串(當字符串長度超過10個字母,取其前10個字母),該字符串將被作為空格
- 如果該參數沒有提供(或者為 null),將沒有空格
- 轉換值如果有
toJSON()
方法,該方法定義什么值將被序列化- 非數組對象的屬性不能保證以特定的順序出現在序列化后的字符串中
- 布爾值、數字、字符串的包裝對象在序列化過程中會自動轉換成對應的原始值,undefined、任意的函數以及 symbol 值,在序列化過程中會被忽略(出現在非數組對象的屬性值中時)或者被轉換成 null(出現在數組中時)。函數、undefined 被單獨轉換時,會返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined)
- 對包含循環引用的對象(對象之間相互引用,形成無限循環)執行此方法,會拋出錯誤
- 所有以 symbol 為屬性鍵的屬性都會被完全忽略掉,即便 replacer 參數中強制指定包含了它們
- Date 日期調用了 toJSON() 將其轉換為了 string 字符串(同Date.toISOString()),因此會被當做字符串處理
- NaN 和 Infinity 格式的數值及 null 都會被當做 null
- 其他類型的對象,包括 Map/Set/WeakMap/WeakSet,僅會序列化可枚舉的屬性
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~
希望得到建議咨詢、商務合作,也請與我們聯系01063334945。
分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( www.nantongguohuai.com.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。