工作的需要,最近在看php,偶然的一个机会,我认识了你,JSON,全称是JavaScript Object Notation,看过介绍之后,喜悦之情难于言表:终于不用烦人的XML解析了!!于是马上安装php5,下载json.js,开始我第一个json之旅,但是,麻烦接踵而至。
我采用ajax,从服务端传送过来一个json格式的字符串,字符串内容如下:
{"str0":{"roleID":"1","roleName":"%u8d85%u7ea7%u7ba1%u7406%u5458","roleDesc":"","permit":"111111000000111111000000111111111111110011000111101111111100","level":"1"},"str1":{"roleID":"2","roleName":"%u9879%u76ee%u7ba1%u7406%u5458","roleDesc":"","permit":"111111000000111111000000111111111111110011000111101111110100","level":"2"},"str2":{"roleID":"9","roleName":"%u666e%u901a%u7528%u6237","roleDesc":"","permit":"110101000000110101000000110101010101010010000100001000000000","level":"3"}}
这是一个标准的json格式,在php里用php_encode函数编码,在客户端,我这样解析:
<script language="javascript">
var str = "上面那个字符串";
var myJsonObj = str.parseJSON();
alert(myJsonObj.str0);
</script>
但是alert出来的竟然是 undefined,刚开始我还以为是我的脚本有问题,经过长时间的调试,始终找不到问题所在,
于是我就换了一种方式,如下:
<script language="javascript">
var str = "上面那个字符串";
var myJsonObj = eveal('(' + str + ')');
alert(myJsonObj.str0.roleName);
</script>
这是脚本正常工作了,我想,也可能是json.js函数中的解析函数有问题,但是还没有仔细看源代码。