如何从JSON数组中获取具有特定名称的所有实体

时间:2014-04-11 13:26:04

标签: javascript jquery json

我得到了一些嵌套在对象中的json。我需要提取名称为" body"的每个实体。有没有办法在不编写长算法的情况下做到这一点?

http://www.reddit.com/r/AskReddit/comments/22rx5c.json

2 个答案:

答案 0 :(得分:1)

您需要以递归方式遍历每个节点及其子节点并检查其密钥名称。有些库可以帮助您解决这个问题。或者,您可以使用xpath for JSON

答案 1 :(得分:1)

您可以尝试:

$.getJSON('http://www.reddit.com/r/AskReddit/comments/22rx5c.json', function(json){
    result = [];
    recurse('body', json);
    console.log(result);
});

function recurse(toFind, json){
    for( var key in json ){
        if( typeof json[key] == 'object' ){
            recurse( toFind, json[key] );
        }
        if( key == toFind ){
           result[result.length] = json[key]; 
        }
    }
};

在这里你可以找到JSFiddle