我在尝试在JSON文件中获取嵌套数据时遇到问题。
有人能帮帮我吗?我正在努力创建一个megamenu。
$.getJSON("js/nav.json", function (data) {
$.each(data.navigation, function (i, navigation) {
var jsondata = "<li class='top-level'><a href='/" + this.link + "'>" + this.title + "</a></li>";
$.each(this.headingArray, function () {
alert(hello);
});
$(jsondata).appendTo("ul.nav");
});
});
});
以下是从
读取的示例JSON文件{
"navigation": [
{
"title": "Home",
"link": ""
},
{
"title": "Find your ski holiday",
"link": "#URLhere",
"headingArray": [
{
"heading": [
{
"title": "Destinations",
"link": "#URLhere",
"subheading": [
{
"title": "Andorra",
"link": "#URLhere"
},
{
"title": "Austria",
"link": "#URLhere"
},
请帮助任何帮助吗?
答案 0 :(得分:1)
由于您的对象具有不同的属性,例如headingArray
,subheading
等,因此在尝试迭代this.headingArray
之前,您必须检查它是否已定义。
添加类似
的内容if (this.headingArray){
//iterate through this.headingArray
}
答案 1 :(得分:0)
这是您的响应解析方式。
请注意,由于JSON的结构方式,并非数组中的每个结果元素都包含headingArray
/ subheading
字段。
例如,如果查看JSON响应数组中的第一个元素,则可以清楚地看到该对象不包含headingArray
字段:
{
"navigation": [
{
"title": "Home",
"link": "" // No headingArray in here...
}, {
"title": "Find your ski holiday",
"link": "#URLhere",
"headingArray": [
{
你应该做的是: