使用 Jquery 或 Javascript 解析嵌套的 Yodlee JSON 源

Parsing nested Yodlee JSON feed using Jquery or Javascript

提问人:Dango 提问时间:7/9/2014 更新时间:7/9/2014 访问量:125

问:

我正在尝试从下面的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 结果集

http://pastebin.com/6498mZJf

提前致谢!

JavaScript jQuery Ajax JSON Yodlee

评论


答:

1赞 Jai 7/9/2014 #1

而不是你应该使用:.each()$.each()

$.each(orgs.Body, function(i,el) {
   var new_orgs = '<div>' + el.itemDisplayName + '</div>';
   $('#response-getItemSummaries').append(new_orgs);
});

$.each() 的描述

一个通用的迭代器函数,可用于无缝迭代对象和数组。数组和具有 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/>');
                    }
                });
            }
        });
    }
});

使用 jQuery 以这种方式获取 plainTextDescription

评论

0赞 Dango 7/9/2014
如果我想使用 $.each() 来解析嵌套数组,例如 itemData -> accounts -> cardTransactions -> plainTextDescription,该怎么办?
0赞 Jai 7/9/2014
@Dango 获取更新的 fiddle 和用于获取 plainTextDescription 的代码。