嵌套的JSON数据

时间:2015-04-15 23:51:29

标签: jquery

我试图使用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); 
      });
  });
});

2 个答案:

答案 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'],

并对下面的其他相册条目执行相同操作。

演示:http://jsfiddle.net/hg6631am/2/

答案 1 :(得分:0)

我想这个:

 "album":"[{'1.png','2.png','3.png'}]",

需要格式化为:

 "album":['1.png','2.png','3.png'],