JSON(JavaScript Object Notation)
是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式。
更多内容请见:http://www.json.org/
(一)标准格式
function
JsonFormatting() {
var
jsonString
=
'
{"Unid":"1","CustomerName":"宋江","Age":"33"}
'
;
var
jsonObject
=
eval(
'
(
'
+
jsonString
+
'
)
'
);
var
tt
=
''
;
$.each(jsonObject,
function
(k, v) {
tt
+=
k
+
"
:
"
+
v
+
"
<br/>
"
;
});
$(
"
#divmessage
"
).html(tt); }
这种写法就是key值用双引号包围。这种格式可以叫做json串。通过eval函数将json串转换为json对象。
(二)简写格式
function
JsonFormatting() {
var
jsonString
=
'
{Unid:"1",CustomerName:"宋江",Age:"33"}
'
;
var
jsonObject
=
eval(
'
(
'
+
jsonString
+
'
)
'
);
var
tt
=
''
;
$.each(jsonObject,
function
(k, v) {
tt
+=
k
+
"
:
"
+
v
+
"
<br/>
"
;
});
$(
"
#divmessage
"
).html(tt);
}
这种写法就是key值省略引号。
通过eval函数将json串转换为json对象,然后可以通过两种方法访问:
(1)点语法
Object.Property
var jsonString = '{"Unid":"1","CustomerName":"宋江","Age":"33"}'
;
var jsonObject = eval('(' + jsonString + ')'
);
alert(jsonObject.CustomerName);
(2)键值对索引
Object[key]
var
jsonString
=
'
{"Unid":"1","CustomerName":"宋江","Age":"33"}
'
;
var
jsonObject
=
eval(
'
(
'
+
jsonString
+
'
)
'
);
alert(jsonObject[
"
CustomerName
"
]);
说明一下eval函数,它可以把一个字符串当作一个JavaScript表达式一样去执行。
eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值。
function
EvalTest() {
var
code1
=
'
"a" + 2
'
;
//
表达式
var
code2
=
'
{a:2}
'
;
//
语句
alert(eval(code1));
//
输出a2
alert(eval(code2));
//
输出undefined
alert(eval(
'
(
'
+
code2
+
'
)
'
));
//
输出[object Object]
}
对于对象声明语句来说,仅仅是执行,并不能返回值。为了返回常用的“{}”这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值。
为jquery添加从json串到json对象的转换方法。
打开库,找到jQuery.extend({
添加方法
jsonToObject:
function
(a) {
return
eval(
'
(
'
+
a
+
'
)
'
);
},
使用如下:
var
jsonString
=
'
{"Unid":"1","CustomerName":"宋江","Age":"33"}
'
;
var
jsonObject
=
$.jsonToObject(jsonString);
alert(jsonObject[
"
CustomerName
"
]);
其中
jsonString
为
json
串,而
jsonObject
为
json
对象