用上面的代码处理data.json,在firefox中是好的,但是IE(6、7、8)中失败,然后我把data.json中的“song”的value删到只剩一组,在IE中就好了,但是有两组或两组以上值的时候就不行,求解答~感谢!
原来的data.json和"song"只有一组值的data.json代码如下:
|
altchenSep 11, 2012
1
是不是你的数组>1的时候是最后有个逗号如[{},{},]
去掉最后的逗号试下 |
|
5
放弃用本地文件了,写了个服务器端来放回json,问题解决~
|
|
xmmwcSep 12, 2012
6
$.ajax({
type: "GET", url: "data.json", cache: false, success: function (data) { data = eval("("+ data + ")"); var i = 0; $('#player .album-cover a').attr({ href: data.song[i].album, title: data.song[i].albumtitle }); $('#player .album-cover img').attr({ src: data.song[i].picture, alt: data.song[i].albumtitle }); } }); |
|
JulyyqSep 12, 2012
7
朱一表示测试JSON神马的,要么在服务器环境下,要么在IE9下。。。
|
|
weicaizhiSep 12, 2012
8
个人经验是,IE浏览器对JS的逗号要求很严格,多一个就会报错,尤其是兼容模式下。所以建议你用IE9选择IE 7或8 浏览模式,然后把调试打开,如果真是我说的这种问题,调试会帮你找到错误的那一行的,我这也是好多次都是这样的问题。
|
|
tangzxSep 12, 2012
9
因为火狐有原生的JSON。parse,对JSON格式要求很松,而IE没有这个方法,jquery会调用自己实现的json。parse,而jquery自己实现的jqueryparse很严格,不能有格式错误,请去json。org上参考,空格不允许,键值必须用引号括起来
|
|
cougarSep 13, 2012
10
不用$.each迭代吗?
|
|
chuxiwenSep 13, 2012
11
dataType
The type of data that you're expecting back from the server. 在服务器端的返回 content-type设置需为 "application/json;charset=UTF-8" 另外,JSON 的生成最好用已有的库或者直接对 object 进行 serialization |