JSON获取对象名称为随机的对象的参数的值

时间:2014-07-01 04:29:14

标签: javascript json wikipedia-api

我是JSON的新手,为完成这项工作而烦恼。我必须得到" extract"的价值。如在给定的图中。该图是json的对象图。值21721040可以是随机的,因此我不知道我所寻求的成员之一的对象的名称。

因此我不能做像

这样的事情
query.pages.21721040.extract

enter image description here

那么如何才能获得"提取"?

的价值

出于好奇,当我试图访问其中一个成员时,名称为数字的对象是否会产生错误?或者他们只是工作?例如,在这种情况下,对象的一个​​名称是" -1"。

enter image description here

如果我尝试访问值" url"在JS中解析之后:

query.pages.-1.imageinfo.0.url

会抛出错误吗?

3 个答案:

答案 0 :(得分:1)

如果您不知道属性名称,可以自己迭代对象的属性:

for (var key in query.pages) {
    if (query.pages.hasOwnProperty(key)) {
        console.log(query.pages[key].extract);
    }
}

或者,您可以使用相对现代的Object.keys()来获取对象具有的键数组。

答案 1 :(得分:1)

试试这个:

query.pages[Object.keys(query.pages)[0]].extract

答案 2 :(得分:1)

尝试query.pages["-1"].imageinfo[0].url。 实际上所有字段都可以视为字符串。所以你可以写query["pages"]["-1"]["imageinfo"]["0"]["url"]

如果您不知道key,请使用Object.keys()找出与该对象关联的密钥。此key可以是属于key的任何object或其继承的object。仅查找对象自己的关键用户hasOwnProperty