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

[b]现在来看一下它在web的使用:[/b]
因为语言的不同,在action中对json的使用方式也不一样,但思路是一样的,那就是将json转换为对象或数组。你使用哪种语言,请参照本语言使用json的方式。
[color=indigo][b]1、使用javascript操作json[/b][/color]
在js中创建一个json对象:

var obj= { name: " 张三 " , "sex" : ' 男 ' } ;
alert(obj.sex); //使用

在实际应用中,有可能从后台返回一个json对象进行解析,代码如下:

eval(obj); //json Object --> JavaScript Object
alert(obj.sex);

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

var jsObj= {plugin: 'jquery-json', version: 2.4};
var encoded = $.toJSON( jsObj ); // '{"plugin":"jquery-json","version":2.4}'

通过上面的代码,这个对象或数组就被保存成为了JSON格式的数据了。
[color=red]3.[/color]将这个JSON对象传入action中进行处理,然后返回。
[color=red]4.[/color]如果返回的是一个json,那么各户端接收以后需要将json格式的数据转换为javascrip中的对象或数组([color=red]$.evalJSON( jsonObj );[/color] ),代码如下:

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的下载地址:[url]http://jquery.com/download/[/url]
jquery-json扩展的下载地址:[url]http://code.google.com/p/jquery-json/[/url]
[color=indigo][b]3、使用prototype操作jsos[/b][/color]
将js对象或数组转换成JSON格式。导入prototype.js,使用代码如下:

对象.toJSON();
//或者
数组.toJSON();

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

json对象.evalJSON();

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


还有如json.js的框架,也能转换json,这里不再敷述,原因是jQuery.js,prototype.js的功能已经十分强大,已经没有必要再使用json.js了。使用时建议只使用一种,不然会有冲突。
[b]附件中带有jQuery和prototype的框架及说明文档[/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值