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