2012-04-07 22 views
0

所以我試圖解析一些嵌套的JSON,並且我試圖訪問它的方式讓我很困惑,我怎麼才能將它添加回它自己的單個'item'中。每個項目都包含圖像,標題和可能的標籤。圖像源和標題一起嵌套在同一級別,因此可以在同一個函數內訪問它們,但標籤對象(與圖像源和標題位於同一級別)包含一個數組,它需要是使用第二個函數訪問每個標籤。我能夠使用下面的代碼解析每個標籤,但我不確定如何將標籤對象數據傳遞迴最初的每個函數。任何幫助將不勝感激!如何從每個函數內的每個函數中分析嵌套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" 
      } 
     ] 
    } 
    } 
] 
} 

的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 
       }); 
      } 

    }); 
}); 

回答

1

串連所有的名字,然後將它們添加到容器中。

... 
var names = ""; 
$.each(this.tags.data, function(idx) { 
    if(idx > 0) names += ","; 
    names += this.name; 
}); 
$("#container").append($("<li></li>").append(names)); 
... 
+0

不得不修改一下,以得到我想要的結構,但工作完美!謝謝! – mkp 2012-04-07 16:16:36