日期:2014-05-16  浏览次数:20571 次

JSON简单入门
JSON(JavaScript Object Notation)一种简单的数据格式,相比xml更轻巧,易于机器生成和解析,而且传输的有效性也提高很多,现在.NET中也有一些来处理JSON的类(详细查看JSON in .NET)。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON不需要任何的API或者工具包。
      JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔,具体细节参考(http://www.json.org/json-zh.html)

      1.、在JavaScript中创建一个JSON的对象

示例:

var user=

{
    "username":"andy",
    "age":20,
    "info":{"tel":"123456","cellphone":"7890"},
    "address":
    [
       {"city":"beijing","postCode":"111111"},
       {"city":"anhui","postCode":"222222"}
    ]
}

      我们定义了一个user对象,拥有username, age, info, address 等属性,我们看到,JSON的定义中是容许进行嵌套的,现在我们来访问下这个user对象的一些属性的值,如下:

alert('user.username:'+user.username);

alert('user.age:'+user.age);

alert("tel:"+user.info.tel+";cellphone:"+user.info.cellphone);

alert(user.address[0].city);                                  

      下面我们来修改user对象的一些属性的值,如下:

        user.username="newName";
        alert(user.username);

      2、JavaScript中有的eval函数

      通过eval函数可以将具有JSON格式的字符串转换为JSON对象

示例:

       var jsonStr='{"name":"wudan","age":"20"}';        //定义一个json格式的字符串
       var jsonObj=eval_r('('+jsonStr+')');                //利用eval方法将json结构的字符串转换为JSON类型,以供读取数据
       alert(jsonObj.name);                              //读取属性

      3、利用JSON提供的js包处理json数据(toJSONString方法和parseJSON方法)

      JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入后就可以使用其提供的toJSONString()方法了,toJSONString方法可以将一个object对象转换为具有JSON格式的字符串(这样我们可以很方便的对数据进行处理了),我们也可以通过上面的evel函数再将字符串转换为JSON对象进行访问

        示例:

       //定义一个对象

       function Car(make,model,year,color)
       {
             this.make=make;
             this.model=model;
             this.year=year;
             this.color=color;
       }

       function showCar()
       {
             var carObj=new Car("Doge","Cornet",1968,"yellow");
             alert(typeof(carObj));  //object类型
               
             //首先利用toJSONString方将一个object类型转换为一个JSON结构的一个字符串