以文本方式查看主题

-  ╋艺 镇╋  (http://zyzsky.com/bbs/index.asp)
--  ┣◇网站建设&Web语言  (http://zyzsky.com/bbs/list.asp?boardid=4)
----  js中的json对象(二)  (http://zyzsky.com/bbs/dispbbs.asp?boardid=4&id=2729)

--  作者:admin
--  发布时间:2011/3/24 16:44:59
--  js中的json对象(二)

四、JSON在Ajax中的应用

    JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

通过以上学习我们知道JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

1、通过Json格式来声明对象和操作对象

案例:

 js 代码

function showJSON()

{  

    var user =   

    {   

        "username":"andy",

        "age":20,

        "info": { "tel": "123456", "cellphone": "98765"},

        "addresses":  

            [  

                {"city":"beijing","postcode":"222333"},

                {"city":"newyork","postcode":"555666"}

            ]  

    }

    alert(user.username);

    alert(user.age);

    alert(user.info.cellphone);

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

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

}  

这表示一个user对象,拥有username, age, info, address 等属性。

同样也可以用JSON来简单的修改数据,修改上面的例子

js 代码

function showJSON() {  

    var user =   

    {   

        "username":"andy",  

        "age":20,  

        "info": { "tel": "123456", "cellphone": "98765"},  

        "address":  

            [  

                {"city":"beijing","postcode":"222333"},  

                {"city":"newyork","postcode":"555666"}  

            ]  

    }  

      

    alert(user.username);  

    alert(user.age);  

    alert(user.info.cellphone);  

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

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

      

    user.username = "Tom";  

    alert(user.username);  

}

2、一般对象转换成JSON格式的字符

JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。

js 代码

function Car(make, model, year, color) {  

     this.make  =  make;  

     this.model  =  model;  

     this.year  =  year;  

     this.color  =  color;  

}  

function showCar() {  

    var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");  

    alert(carr.toJSONString());  

}  

 

2、js对象和JSON格式的js对象、JSON格式的js对象和JSON文本的转换

可以使用eval来转换JSON字符到JSON格式的Object

js 代码

function myeval_r() {  

    var str = \'{ "name": "张三", "sex": "男" }\';  

    var obj = eval_r(\'(\' + str + \')\');  

    alert(obj.toJSONString());  

}  

或者使用parseJSON()方法

function myparse()

{  

    var str= \'{ "name": "张三", "sex": "男" }\';  

    var obj=str.parseJSON();   //把其Json文本解析成为json对象  

    alert(obj.toJSONString()); //把json对象转换成JSON 文本 


}  

 

 

 


MORE:

http://blog.sina.com.cn/s/blog_4dd475390100lzl1.html