我是JSON的新手,为完成这项工作而烦恼。我必须得到" extract"的价值。如在给定的图中。该图是json的对象图。值21721040可以是随机的,因此我不知道我所寻求的成员之一的对象的名称。
因此我不能做像
这样的事情query.pages.21721040.extract
那么如何才能获得"提取"?
的价值出于好奇,当我试图访问其中一个成员时,名称为数字的对象是否会产生错误?或者他们只是工作?例如,在这种情况下,对象的一个名称是" -1"。
如果我尝试访问值" url"在JS中解析之后:
query.pages.-1.imageinfo.0.url
会抛出错误吗?
答案 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