所以我正在尝试解析一些嵌套的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
});
}
});
});
答案 0 :(得分:1)
连接所有名称,然后将它们附加到容器中。
...
var names = "";
$.each(this.tags.data, function(idx) {
if(idx > 0) names += ",";
names += this.name;
});
$("#container").append($("<li></li>").append(names));
...