標籤:log style name hello 返回 span 對象序列化 支援 object
JSON是javascri Object Notatio(javascript對象標記法)的簡稱。它是一種輕量級的資料交換格式。
JSON是javascript的一個嚴格的子集,是基於javascript的對象字面量標記法來表示結構化的資料。
1.JSON文法
支援三種資料類型,注意:不支援變數、函數、對象執行個體。
1.簡單值:可以表示字串、數字、布爾值、以及null。注意不支援undefined。字串必須使用雙引號。
2.對象:表示無序的索引值對。對象沒有變數和分號。而且對象的屬性值必須加雙引號。
example:
{"name":"tian""age":21,"school":"xidian"}
3.數組:有序的值列表。數組沒有變數和分號。
[{ "title":"hello"}, "name",21,true ]
二、JSON對象的方法
1.stringify():把JSON對象序列化為JSON字串
該方法接收三個參數;
a.要序列化的JSON對象,必須的
b.指定序列化的方式。是個過濾器。可以是數組,也可以是函數(成為過濾函數)
若為數組,則篩選出數組中列出的屬性。
若為函數,該函數接收兩個參數,屬性名稱key,屬性值value。根據函數的傳回值決定序列化的結果。對象的每個屬性都會經過過濾器。
如果傳回值是undefined,則忽略相應的屬性。
c.表示是否在JSON字串中保留縮排
若為數字,縮排的字元數,結果也會包含分行符號。
若為字串,將其作為縮排字元。
d. 由於JSON.stringify()方法有時不能滿足某些對象序列化的而要求。有些時候,會給對象添加toJSON方法,返回其自身的JSON資料格式。
toJSON()可以作為函數過濾器的補充。
總結:JSON.stringify()的序列化對象的順序如下:
- 如果javascript對象存在toJSON()方法,而且該方法能取得有效值,則調用該方法。否則,返回javascript對象對象本身。
- 如果有第二個參數,應用這個函數過濾器。傳入過濾器的值是第一步返回的值。
- 對第二步中返回的每個值進行相應的序列化。
- 如果有第三個參數,執行相應的格式化。
2.parse():把javascript字串解析為JSON對象
該方法接收三個參數;
a.要解析的javascript字串,必須的
b.還原函數,可選。應該用在每個索引值對。
javascript之JSON對象