很多资料上都说JSON在更多的场合都比XML更适合Ajax的数据传送,但google很久没有找到JSON的如何像XML那样的遍历
其实JSON是一种JS定义对象的一种特殊的形势,所以可以按照对象的方法来访问,但又有一些不同.JSON太神奇了,呵呵,做了个小例子,不知道如何读取JSON中的值的朋友看一下吧.
<
script language
=
"
JavaScript
"
type
=
"
text/javascript
"
>
var d = ... {"msg":[...{"user":"llinzzi","msg":"你好"},...{"user":"Huanhuan","msg":"嘿嘿"}],"type":"test"} ;
alert(d.type);
alert(d.msg[ 0 ].msg);
alert(d.msg.length);
for ( var o in d) ... {
alert(d[o]);
}
</ script >
var d = ... {"msg":[...{"user":"llinzzi","msg":"你好"},...{"user":"Huanhuan","msg":"嘿嘿"}],"type":"test"} ;
alert(d.type);
alert(d.msg[ 0 ].msg);
alert(d.msg.length);
for ( var o in d) ... {
alert(d[o]);
}
</ script >
此外,如果服务器返回得responseText内容是{"msg":[{"user":"llinzzi","msg":"你好"},{"user":"Huanhuan","msg":"嘿嘿"}],"type":"test"}格式的,在ajax要进行赋值的时候必须是
var msg=eval('(' + req.responseText + ')');
eval函数如果是生成对象必须要在外面加(),比如var aaa={xxx:"aaa",mmm:"xxx"};这一句要用eval写的话必须写成var aaa=eval('({xxx:"aaa",mmm:"xxx"})')这样,如果没有()的话,会报invalid label的错误的