欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

json的介绍(二)----json在web的使用

程序员文章站 2022-07-15 14:24:21
...
现在来看一下它在web的使用:
   因为语言的不同,在action中对json的使用方式也不一样,但思路是一样的,那就是将json转换为对象或数组。你使用哪种语言,请参照本语言使用json的方式。
1、使用javascript操作json
在js中创建一个json对象:
var obj= { name: " 张三 " , "sex" : ' 男 ' } ; 
alert(obj.sex);  //使用

在实际应用中,有可能从后台返回一个json对象进行解析,代码如下:
eval(obj); //json Object --> JavaScript Object
alert(obj.sex); 

eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问题。eval 的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可信任的。
2、使用jQuery操作json
使用jQuery来解析json,要使用一个jQuery的扩展来实现  jquery.json-2.4.js
    1.首先,在javascript中要获取前端页面中所有输入域的值,保存到数组或一个对象中,这个对象可以不以json的形式保存,而以js的对象形式保存(目的是为了说明jQuery.js的用法)。
    2.将js对象或数组转换成JSON格式。导入jQuery.js及其扩展jquery.json.js,使用($.toJSON( jsObj ); )代码如下:
var jsObj= {plugin: 'jquery-json', version: 2.4}; 
var encoded = $.toJSON( jsObj ); // '{"plugin":"jquery-json","version":2.4}' 

通过上面的代码,这个对象或数组就被保存成为了JSON格式的数据了。
    3.将这个JSON对象传入action中进行处理,然后返回。
    4.如果返回的是一个json,那么各户端接收以后需要将json格式的数据转换为javascrip中的对象或数组($.evalJSON( jsonObj ); ),代码如下:
var jsObj= {plugin: 'jquery-json', version: 2.4}; 
var jsonObj= $.toJSON( jsObj ); // '{"plugin":"jquery-json","version":2.4}' 
var javascriptObj= $.evalJSON( jsonObj );
alert(javascriptObj.plugin); // "jquery-json" ;转换后使用javascript对象
alert(javascriptObj.version); // 2.4 

jQuery的下载地址:http://jquery.com/download/
jquery-json扩展的下载地址:http://code.google.com/p/jquery-json/
3、使用prototype操作jsos
将js对象或数组转换成JSON格式。导入prototype.js,使用代码如下:
对象.toJSON();
//或者
数组.toJSON();

将json格式的数据转换为javascrip中的对象或数组。代码如下:
json对象.evalJSON();

好了,这样就转换成js中的对象或数组了。同样你也可以使用javascript中的eval函数进行转换(eval(json对象))。


还有如json.js的框架,也能转换json,这里不再敷述,原因是jQuery.js,prototype.js的功能已经十分强大,已经没有必要再使用json.js了。使用时建议只使用一种,不然会有冲突。
附件中带有jQuery和prototype的框架及说明文档