0

所以我试图解析一些嵌套的 json,而我试图访问它的方式让我对如何将它添加回它自己的单个“项目”感到困惑。每个项目都包含一个图像、一个标题和可能的标签。图像源和标题嵌套在同一级别,因此可以在相同的每个函数中访问它们,但是标签对象(也与图像源和标题在同一级别)包含一个数组,需要使用第二个 each 函数访问以获取每个标签。我可以使用以下代码解析每个标签,但我不确定如何将标签对象数据传递回初始的每个函数。任何帮助将不胜感激!

JSON Structure:

{
"data": [
  {
     "source": "http://example.com/picture1.jpg",
     "caption": "First caption",
     "tags": {
        "data": [
           {

              "name": "Cats One"
           },
           {
              "name": "Dogs One"
           }
        ]
     }
   }
   {
     "source": "http://example.com/picture2.jpg",
     "caption": "Second caption",
     "tags": {
        "data": [
           {

              "name": "Cats Two"
           },
           {
              "name": "Dogs Two"
           }
        ]
     }
   }
 ]
}

jQuery 用于访问 JSON 数据

$(document).ready(function(){

  var url = "http://example.com";

  $.getJSON(url, function(json) {
      $('#wrapper').prepend('<div id="container"></div>');
      $.each(json.data, function(i, data) {
          //Adds each entry to container
          $("#container").append('<ul class="image">' + '<li class="source"><img  src="' + data.source + '" /></li>' + '<li class="caption">' + data.caption + '</li>' + '</ul>');
          //Checks if tags exist for each element
          if (typeof(this.tags) === 'object') {
              $.each(this.tags.data, function() { 
                  //console.log(this.name);
                              //not sure what to add here to append these tags in a li tag above
              });
          }

  });
});  
4

1 回答 1

1

连接所有名称,然后将它们附加到容器中。

...
var names = "";
$.each(this.tags.data, function(idx) { 
  if(idx > 0) names += ",";
  names += this.name;
});
$("#container").append($("<li></li>").append(names));
...
于 2012-04-07T05:32:27.630 回答