在JSON中嵌套的数据
我遇到了问题,试图在我的JSON文件中获取嵌套数据。在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文件IM从
{
"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"
},
任何帮助阅读将不胜感激吗?
因为你的对象有不同的属性,如headingArray
,subheading
等,试图通过this.headingArray
你要检查它是否定义或不重复了。
所以添加类似
if (this.headingArray){
//iterate through this.headingArray
}
感谢您的帮助! – imshuffling 2013-04-22 15:00:19
+1演示提琴。 – 2013-04-22 15:12:11
这是你的反应是如何被解析。
请注意,由于您的JSON结构的方式,数组中不是每个生成的元素都包含一个headingArray
/subheading
字段。
例如,如果你看一下JSON响应数组中的第一个元素,你可以清楚地看到该对象不包含headingArray
场:
{
"navigation": [
{
"title": "Home",
"link": "" // No headingArray in here...
}, {
"title": "Find your ski holiday",
"link": "#URLhere",
"headingArray": [
{
你应该怎么做是:
- 无论是重组的JSON只包含同质元素,
- 或重写您的解析逻辑,以在 尝试访问其值时检查不存在的字段。
你可以更具体一点*你的问题是什么*? – Friederike 2013-04-22 14:48:26