0

そのため、ネストされたjsonを解析しようとしていますが、それにアクセスしようとしている方法が、それを独自の個々の「アイテム」に戻す方法について混乱しています。各アイテムには、画像、キャプション、および場合によってはタグが含まれています。画像ソースとキャプションは同じレベルで一緒にネストされているため、同じ各関数内でアクセスできますが、タグオブジェクト (画像ソースとキャプションと同じレベルにあります) には配列が含まれています。各関数を使用してアクセスし、各タグを取得します。次のコードを使用して各タグを解析できますが、タグ オブジェクト データを最初の各関数に戻す方法がわかりません。どんな助けでも大歓迎です!

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"
           }
        ]
     }
   }
 ]
}

JSON データへのアクセスに使用される jQuery

$(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 に答える