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

JavaScript 2013-06-03 toJSON,evalJSON,json,jQuery,对象

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

一、下载插件

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

二、引入插件

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

三、普通对象转json串

代码:

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串转普通对象

代码:

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对象,如:

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串变成复杂点

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","房 奴":"期待"}]}

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

文字链接:《jQuery普通对象与JSON串互相转换

文章地址:http://www.qttc.net/201306335.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 0

    Hi,你想第一个做沙发么?