jQuery普通对象与JSON串互相转换

http://www.qttc.net/201306335.html


json串的方便已经通用性逐渐成为一种规范,通常我们生成json串都是使用服务器端语言生成,而只要掌握json语法规则也能把js对象生成json串。jQuery有一个插件可以轻易的实现普通对象与json串的互相转换。

一、下载插件

下载地址:http://code.google.com/p/jquery-json/

二、引入插件

要先引入jQuery后再引入插件。

三、普通对象转json串

代码:

1
2
3
4
5
6
7
8
9
var obj = {
     'name' : '琼台博客' ,
     'url'  : 'www.qttc.net' ,
     'desc' : '个人web技术博客' ,
     'author' : 'lee'
};
 
obj_json = $.toJSON(obj);
document.write(obj_json);

执行结果:

{"name":"琼台博客","url":"www.qttc.net","desc":"个人web技术博客","author":"lee"}

四、json串转普通对象

代码:

1
2
3
4
5
6
var json = '{"name":"琼台博客","url":"www.qttc.net","desc":"个人web技术博客","author":"lee"}' ;
var json_obj = $.evalJSON( json );
 
for ( var i in json_obj){
     document.write(json_obj[i] + '<br />' );
}

执行结果:

琼台博客
www.qttc.net
个人web技术博客
lee

五、注意问题

对象内有function不能转换到json对象,如:

1
2
3
4
5
6
7
8
9
10
11
12
var obj = {
     'name' : '琼台博客' ,
     'url'  : 'www.qttc.net' ,
     'desc' : '个人web技术博客' ,
     'author' : 'lee' ,
     'say' : function (){
         alert( $( this .name ) );
     }
};
 
obj_json = $.toJSON(obj);
document.write(obj_json);

执行:

{"name":"琼台博客","url":"www.qttc.net","desc":"个人web技术博客","author":"lee"}

say方法没有被json序化。

我们再把这个json串变成复杂点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var obj = {
     'name' : '琼台博客' ,
     'url'  : 'www.qttc.net' ,
     'desc' : '个人web技术博客' ,
     'author' : 'lee' ,
     'say' : function (){
         alert( $( this .name ) );
     },
     'mm' : false ,
     'gg' : true ,
     'tag' : [ '屌丝' , '程序员' , { '北漂' : 'yes' , '房奴' : '期待' } ]
};
 
obj_json = $.toJSON(obj);
document.write(obj_json);

执行:

{"name":"琼台博客","url":"www.qttc.net","desc":"个人web技术博 客","author":"lee","mm":false,"gg":true,"tag":["屌丝","程序员",{"北漂":"yes","房 奴":"期待"}]}

看来,都没有问题,层级也保留了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值