我无法解析我无法控制的JSON.我在这做错了什么?
data.json
{
"img": "img1.jpg",
"img": "img2.jpg",
"size": [52, 97]
}
{
"img": "img3.jpg",
"img": "img4.jpg",
"size": [52, 97]
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
$.getJSON("data.json",
function(data){
$.each(data, function(i,item){
alert(item.img[i]);
});
});
Run Code Online (Sandbox Code Playgroud)
JSON形成得很糟糕.它应该是这样的:
{images: [{
"img": "img1.jpg",
"img": "img2.jpg",
"size": [52, 97]
},
{
"img": "img3.jpg",
"img": "img4.jpg",
"size": [52, 97]
}]
}
Run Code Online (Sandbox Code Playgroud)
这就是你解析它时遇到问题的原因.
如果您无法控制它,但是您知道它将采用类似的形式,您可以使用jQuery.ajax然后通过某些字符串操作将其转换为有效的JSON.可能并不理想,但鉴于您无法控制返回的JSON,这是您唯一能做的事情.
另请注意,您有两个具有相同名称的键.那是另一个问题.
要解决这个问题,您可能需要以下内容:
{images: [{
"img1": "img1.jpg",
"img2": "img2.jpg",
"size": [52, 97]
},
{
"img3": "img3.jpg",
"img4": "img4.jpg",
"size": [52, 97]
}]
}
Run Code Online (Sandbox Code Playgroud)
要么
{images: [{
"img": ["img1.jpg", "img2.jpg"],
"size": [52, 97]
},
{
"img": ["img3.jpg", "img4.jpg"],
"size": [52, 97]
}]
}
Run Code Online (Sandbox Code Playgroud)
我认为更好的方法是这样的:
{images: [{
img: "img1.jpg",
size: [52, 97]
},
{
img: "img2.jpg",
size: [52, 97]
},
{
img: "img3.jpg",
size: [52, 97]
},
{
img: "img4.jpg",
size: [52, 97]
}]
}
Run Code Online (Sandbox Code Playgroud)
就像我之前提到的那样,鉴于你无法控制JSON,你几乎无能为力.如果可以的话,我建议您与该网站的管理员/开发人员交谈.他们确实需要被告知他们没有返回有效的JSON.
| 归档时间: |
|
| 查看次数: |
3020 次 |
| 最近记录: |