无法访问JSON对象中的属性

时间:2018-11-22 14:11:28

标签: javascript json

我想访问我从Wikipedia API获得的JSON对象中的属性。 您可以看到对象here

asset($filename);

我想要的是:查询->页面-> 274152->提取

我可以访问该值,但是问题是我需要知道对于每个对象都在变化的'274152'值,因此我想找到一种可以在任何数字下使用的解决方案。

所以我能走得最远的是{ "batchcomplete": "", "query": { "normalized": [ { "from": "baguette", "to": "Baguette" } ], "pages": { "274152": { "pageid": 274152, "ns": 0, "title": "Baguette", "extract": "Une baguette est, dans son sens premier, une tige de bois, de métal, ou de divers autres matériaux ; le mot peut désigner aussi d’autres concepts, notamment par métonymie.\n\n" } } } }

有什么主意吗?谢谢

3 个答案:

答案 0 :(得分:0)

您可以使用:

var keys = Object.keys(obj.query.pages);

获取pages对象中定义的属性数组。然后,您基本上可以进行obj.query.pages[keys[i]]来访问i对象中第pages个项目,例如:

obj.query.pages[keys[0]].extract

或者,您也可以像这样遍历属性:

for (var key in obj.query.pages) {
    if (obj.query.pages.hasOwnProperty(key)) {
        var item = obj.query.pages[key];
        //do something with item
        //item.extract...
    }
}

答案 1 :(得分:0)

如果您只关心“提取”部分,则可以尝试以下操作:

Object.values(obj.query.pages).map(item => item.extract)

获取所有值的列表

答案 2 :(得分:0)

假设给定的JSON是变量data

let uniqueID = Object.keys(data.query.pages)[0];
data.query.pages[uniqueID].extract

会给您想要的结果。

相关问题