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.还原函数,可选。应该用在每个键值对。

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