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","房 奴":"期待"}]}
看来,都没有问题,层级也保留了。