提问人:Dango 提问时间:7/9/2014 更新时间:7/9/2014 访问量:125
使用 Jquery 或 Javascript 解析嵌套的 Yodlee JSON 源
Parsing nested Yodlee JSON feed using Jquery or Javascript
问:
我正在尝试从下面的Yodlee JSON结果集中检索交易详细信息。我可以毫无问题地解析“itemDisplayName”,但在尝试解析任何嵌套内容时,jquery代码出现问题,例如:itemData -> accounts -> cardTransactions -> plainTextDescription
一个家伙建议使用 Javascript For 循环而不是 jQuery,但不确定......
var orgs = $.parseJSON(data);
$(orgs.Body).each(function(i,el) {
var new_orgs = '<div>' + el.itemDisplayName + '</div>';
$('#response-getItemSummaries').append(new_orgs);
});
原始 YODLEE JSON 结果集
提前致谢!
答:
而不是你应该使用:.each()
$.each()
$.each(orgs.Body, function(i,el) {
var new_orgs = '<div>' + el.itemDisplayName + '</div>';
$('#response-getItemSummaries').append(new_orgs);
});
一个通用的迭代器函数,可用于无缝迭代对象和数组。数组和具有 length 属性的类数组对象(例如函数的 arguments 对象)通过数字索引(从 0 到 length-1)进行迭代。其他对象通过其命名属性进行迭代。
$.each() 函数与 $(selector).each() 不同,后者专门用于遍历 jQuery 对象。$.each() 函数可用于遍历任何集合,无论是对象还是数组。对于数组,每次都会向回调传递数组索引和相应的数组值。(该值也可以通过 this 关键字访问,但 Javascript 将始终将 this 值包装为 Object,即使它是简单的字符串或数字值。该方法返回其第一个参数,即已迭代的对象。
Fiddle 演示
如果我想使用 $.each() 来解析嵌套数组,例如 itemData -> accounts -> cardTransactions -> plainTextDescription,该怎么办?
哦,这是对您的评论的延迟回复,但这是您应该使用 jQuery 执行的操作:
$.each(orgs.Body, function (i, el) {
if (el.itemData.accounts !== undefined) {
$.each(el.itemData.accounts, function (i, el) {
if (el.cardTransactions !== undefined) {
$.each(el.cardTransactions, function (i, el) {
if (el.plainTextDescription !== undefined) {
$('body').append(el.plainTextDescription + '<br/>');
}
});
}
});
}
});
评论