我试图使用jQuery访问JSON中的嵌套JSON数据,但我似乎错过了一些东西。我一直收到控制台错误:Uncaught TypeError: Cannot use 'in' operator to search for '34' in [{'1.png','2.png','3.png','4.png'}]
所以我知道我的问题必须对嵌套数据做些什么。我已经尝试了几种不同的方法来解决这个问题,我在下面的jsfiddle链接中进行了评论。
不确定我是否做错了或者我的嵌套数据格式错误:http://jsfiddle.net/hg6631am/1/
$(document).ready(function() {
var json = [{
"title":"Vendor Website",
"desc":"Vendor Website Vendor Website Vendor Website",
"album":"[{'1.png','2.png','3.png','4.png'}]",
"version":"1.0"
},
{
"title":"Vendor Profile",
"desc":"Vendor Profile Vendor Profile Vendor Profile",
"album":"[{'1.png','2.png','3.png'}]",
"version":"1.0"
}];
$.each(json,function(k,v) {
$('#box').append("<h3>Title "+k+": "+v.title+"</h3>");
$('#box').append("<h3>Album "+k+": "+v.album+"</h3>");
$.each(v.album,function(i,x) {
$('box').append("<h3>Album "+k+", Value #"+i+": "+x);
});
});
});
答案 0 :(得分:2)
两个问题。请更改
$('box').append("<h3>Album "+k+", Value #"+i+": "+x);
到
$('#box').append("<h3>Album "+k+", Value #"+i+": "+x);
你的JSON中应该有一个数组,而不是一个带有对象的数组的字符串。请更改
"album":"[{'1.png','2.png','3.png', '4.png'}]",
到
"album":['1.png','2.png','3.png', '4.png'],
并对下面的其他相册条目执行相同操作。
答案 1 :(得分:0)
我想这个:
"album":"[{'1.png','2.png','3.png'}]",
需要格式化为:
"album":['1.png','2.png','3.png'],