我有以下问题。
我已设置此JSON Feed:https://api.myjson.com/bins/1ukdk
我试图遍历源代码,最终输出到html。
$.getJSON('https://api.myjson.com/bins/1ukdk', function (tabledata) {
var items = [];
console.log(tabledata);
//To get category name
var categoryName = tabledata.Categorie;
var title, advertisement, day;
$.each(tabledata.titles, function () {
title = this;
//to get title name and value
var titleName = title.Naam,
titleValue = title.Waarde;
$.each(title.advertisements, function(){
advertisement = this;
//to get advertisement name
var advertisementName = advertisement.Naam;
$.each(advertisement.days, function(){
day = this;
//to get date
var advertisementDay = day.Datum;
});
});
});
//$(items.join('')).appendTo('table');
});
当我输出(tabledata)到控制台时,我得到了这个对象,在数组中填充了对象(我猜这没关系。)
但是,我在$ .each函数上遇到了这个错误:
TypeError: undefined is not an object (evaluating 'e.length')
我似乎无法理解这个问题。看来我无法直接解决表data.titles。任何帮助/建议?
谢谢!
答案 0 :(得分:0)
您的Feed正在返回一组对象。您可以通过直接访问第一个数组项来遍历标题。
$.each(tabledata[0].titles, function () {
答案 1 :(得分:0)
我看了一下你的JSON响应。您的代码无效的原因是因为tabledata
本身是Array
,但您将其视为其中的第一个对象。
如果您真的只对第一个元素感兴趣,请使用tabledata[0]
来访问它。如果您对每个可能的元素感兴趣,则需要迭代tabledata
并处理数组中的每个元素。
答案 2 :(得分:0)
您的JSON解析存在一些问题
实际JSON看起来像这样
protected CryptoKoreanSeed() {
koreanSeedKey = (KoreanSEEDKey) KeyBuilder.buildKey(KeyBuilder.TYPE_KOREAN_SEED, KeyBuilder.LENGTH_KOREAN_SEED_128, NO_EXTERNAL_ACCESS);
register();
}
解析我们得到的是这个
[{
"Categorie" : "Tijdschrift",
"Aantal scans" : 1200,
"Aantal bestellingen" : 729,
"Conversie" : "61%",
"Waarde" : 3608.55,
"titles" : [{
"Naam" : "Libelle",
"Aantal Aantal scans" : 214,
"Aantal bestelingen" : 118,
"Waarde" : 1089.33,
"advertisements" : [{
"id" : 0,
"Advertentie" : "Wasmachine 3",
"Aantal Aantal scans" : 400,
"Aantal bestellingen" : 243,
"Conversie" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}, {
"id" : 1,
"Advertentie" : "Anders",
"Aantal scans" : 400,
"Aantal bestellingen" : 243,
"conversion" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}, {
"id" : 2,
"Advertentie" : "Wasmachine 4",
"Aantal scans" : 400,
"Aantal bestellingen" : 243,
"conversion" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}
]
}, {
"Advertentie" : "Beau Monde",
"Aantal scans" : 782,
"Aantal bestellingen" : 33,
"Waarde" : 9238.33,
"advertisements" : [{
"id" : 0,
"Advertentie" : "Wasmachine 3",
"Aantal scans" : 400,
"Aantal bestellingen" : 243,
"conversion" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}, {
"id" : 1,
"Advertentie" : "Anders",
"Aantal scans" : 400,
"Aantal bestellingen" : 243,
"conversion" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}, {
"id" : 2,
"Advertentie" : "Wasmachine 4",
"Aantal scans" : 400,
"Aantal bestellingen" : 243,
"conversion" : "61%",
"Waarde" : 1202.85,
"days" : [{
"Datum" : "8 mei",
"Aantal scans" : 20,
"Aantal bestellingen" : 11,
"Waarde" : 99
}, {
"Datum" : "9 mei",
"Aantal scans" : 88,
"Aantal bestellingen" : 42,
"Waarde" : 435.6
}, {
"Datum" : "10 mei",
"Aantal scans" : 76,
"Aantal bestellingen" : 43,
"Waarde" : 376.2
}, {
"Datum" : "11 mei",
"Aantal scans" : 30,
"Aantal bestellingen" : 22,
"Waarde" : 148.5
}
]
}
]
}
]
}
]
你可以清楚地看到差异