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