【问题标题】:Display JSON response w/ recursion显示带有递归的 JSON 响应
【发布时间】:2014-09-02 20:22:20
【问题描述】:

我构建了一个 JQuery 函数,它尝试显示从服务器返回的 JSON 对象的所有内容。目前,我正在使用迭代方法(通过循环遍历每个节点),但我正在尝试应用递归。请提供一些建议。

$.ajax({
    url: url,
    dataType: "json",
    contentType: "application/json",
    success: function (response) {
        for (var key1 in response) {
            var post1 = response[key1];
            console.log(key1 + ": " + post1);
            for (var key2 in post1) {
                //debugger Object[0]
                var post2 = post1[key2];
                console.log(key2 + ": " + post2);
                for (var key3 in post2) {
                    //etc
                }
            }
        }
    }
});

【问题讨论】:

    标签: jquery json recursion


    【解决方案1】:

    将控制台代码分解为一个简单的递归函数,并将“根”对象传递给它。比如:

    function dumpIt(obj){
        for (var key1 in obj) {
            var post1 = obj[key1];
            console.log(key1 + ": " + post1);
            // Go recursive on each child object
            dumpIt(post1);
        }
    }
    
    $.ajax({
        url: url,
        dataType: "json",
        contentType: "application/json",
        success: function (response) {
            dumpIt(response);
        }
    });
    

    更健壮的版本 - 带有缩进:

    function dumpIt(obj, indent) {
        if (typeof obj == "object") {
            for (var key1 in obj) {
                var post1 = obj[key1];
                console.log(indent + key1 + ": " + post1);
                // Go recursive on each child object
                dumpIt(post1, indent + " ");
            }
        }
    }
    

    致电:dumpIt(obj, "");

    示例 JSFiddle:http://jsfiddle.net/TrueBlueAussie/r9PYm/2/

    【讨论】:

    • 非常感谢。我将使用类似的逻辑来实现我的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2018-08-31
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多