Я сделал несколько поисков, но мне не удалось в полной мере понять, как это делается. Я относительно новичок в jQuery и JSON. В принципе, у меня есть массивный документ 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>
Итак, в основном вопрос заключается в том, как получить доступ к данным уровня sub в JSON с помощью jQuery? Любое разъяснение очень ценится.
Если 'пункт [ "@ порядок"]' 'работы, item.category.suppliers.supplier.label' с вашим примером JSON должен работа хорошо. Попробуйте установить точку останова на строке 'items.push' и проверите каждый шаг цепи. –
Пожалуйста, ознакомьтесь с https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects –
Порядок работы отлично, если я удалю item.category.suppliers.supplier. На данный момент я получаю сообщение об ошибке «item.category.suppliers.supplier is undefined» – SeasonEnds