javascript之JSON對象

 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.還原函數,可選。應該用在每個鍵值對。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章