我已经做了一些搜索,但我一直无法完全理解这是如何完成的。我对jQuery和JSON相对较新。基本上,我有一个庞大的JSON文档,我正在连接并显示它的各种数据。我需要的数据是供应商标签,它嵌套了三个级别,我不确定如何退货。
JSON
{
"@order": "1",
"category": {
"@id": "204",
"label": "Category 1",
"suppliers": {
"supplier": {
"label": "Business 1",
"customicons": [
{
"@id": "images/img2.jpeg",
"#text": "random icon"
}
]
}
}
}
},
这是我为形成无序列表而制作的脚本。我尝试了item.category.suppliers.supplier.label,这显然不起作用。我是否需要添加一些遍历每个子级别的函数?我如何获得该标签?
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('jsonarray.json',
function(data) {
var items = [];
$.each(data, function(i,item) {
items.push('<li id="' + item["@order"] + '"><label for="supplier"><input id="supplier" name="supplier" type="checkbox" class="checkbox"/>' + item.category.suppliers.supplier.label + '</label></li>');
});
$('<ul/>', {
'class': 'checklist-supplier cl2',
html: items.join('')
}).appendTo('.list_filter_supplier_side');
});
});
</script>
所以,基本上问题是如何使用jQuery访问JSON中的子级数据?非常感谢任何澄清。
答案 0 :(得分:2)
是某种响应中的JSON吗?如果是这样,你可以这样做:
var d = {
"@order": "1",
"category": {
"@id": "204",
"label": "Category 1",
"suppliers": {
"supplier": {
"label": "Business 1",
"customicons": [
{
"@id": "images/img2.jpeg",
"#text": "random icon"
}
]
}
}
}
}
//just show the label
alert(d.category.suppliers.supplier.label);
<强> jsFiddle Example 强>
答案 1 :(得分:1)