javascript 中的 json

 一、  json即javascript对象表示法(javascript object notion),可读性强、非常适合数据传输。javascript中的对象字面量是json的基础。例如数组、字符串和数值等类型的字面量,如:

    var anArray=[''hello','world'];//数组

    var aString='hello world';//字符串

    var aNumber=3.12;//数值

    var anObject={};//对象

    var aBoolean=true;//布尔值

    var aRegExp=/\d/g;//正则表达式

  json构建于这些对象字面量的概念之上,并支持复杂的数据结构,其中可以包括各种各样的常见数据类型:

    Numbers 数值类型,包括整数(0、1、2)、浮点数(6.98)和实数(6.02e23)。

    String 根据标准,字符串是由双引号括起来的Unicode字符串,其中可以使用反斜杠进行转义。

    Boolean true值或者false值。

    Array 一个有序的值的序列。

   Object '键-值'对。

   Null 一个空指针。

二、从javascript 字面量到json

   json是javascript对象表示法的一个子集,使用了javascript对象表示法中所有相同的规则和基础数据类型。如下:

    {

          "customers":[

                                 {

                                       "name":"mr.li",

                                        "sext":"man",

                                         "age":30

                                  },

                                    {

                                       "name":"mr.xiao",

                                        "sext":"man",

                                         "age":40

                                  }

                            ]   

     }

三、转换json代码

     要将一个json字符串转换为一个javascript对象并具有可用格式,最简单的办法就是使用eval()函数进行转换。

    为了便于使用eval()函数,需要将json代码块转换为一个javascript字符串:

           var jsonString="{\"curstomers\":[{\"name\":\"mr.li\",\"sex\":\"man\",\"age\":30},{\"name\":\"mr.xiao\",\"sex\":\"man\",\"age\":30}]}";

           var jsonObject=eval("("+jsonString+")");

     经过eval()函数转换后,通过如下方式就可以访问到该json对象:

          alert(jsonObject.curstomers[1].name);//"mr.xiao"

     在firefox和IE中,包含一个全局JSON对象。具有两个方法:JSON.parse()方法和JSON.stringify()方法:

         1、JSON.parse()语法如下: JSON.parse(text[,reviver]);

             第一个参数text是一个包含了有效JSON结构的字符串。第二个参数reviver是一个可选的函数,用于筛选和转换分析结果:var jsonObj=JSON.parse(jsonString);

        2、JSON.stringify()用于将对象转换成json:JSON.stringify(value[,replacer[,space]])

            第一个参数value是一个想对之进行转换的基本数据或者对象。第二个参数replacer是一个可选的操作函数或者数组引用.第三个参数space用于定义该结构在每一层级上如何进行缩进:var obj={a:20,b:'hello',c:true};var string=JSON.stringify(obj);//{"a":20,"b":"hello","c":true}

   

posted @ 2014-01-13 09:23  烈火如歌007  阅读(174)  评论(0编辑  收藏  举报