在不知道密钥的情况下访问JSON值

时间:2013-12-03 14:45:00

标签: json jquery

我有一个json结构,如图像JSON所示。我想获取extract值。通常我会做

         $.ajax({
        type: 'GET',
        url: 'test2.php',
        dataType: "json",
        cache: false,
        success: function(result) 
        {     
            console.log(result.query.pages[168387].extract);

        }
    });

但值168387不是常量,并且会针对每个请求进行更改。在这种情况下,您能告诉我如何获取EXTRACT的价值吗?

2 个答案:

答案 0 :(得分:4)

你必须循环并检查:

for (var key in result.query.pages) {
    if (result.query.page[key].hasOwnProperty("extract"))
        console.log(result.query.page[key].extract); //or log the key value
}

答案 1 :(得分:0)

许多选择:

如果您知道该字段的值,并将其保存在变量中,那么您不能只改变:

console.log(result.query.pages[168387].extract

console.log(result.query.pages[variableWithTheAttributeNameInIt].extract

如果“Pages”对象实际上是一个包含一致形状对象的数组,那么就这样做并让它为你自动增加一个键。然后,将它作为数组循环将是很自然的。

如果它不是一致的数组,并且您无权访问任何会告诉您属性名称的来源,那么:

  • 更改对象以便它自己告诉您(例如,添加一个IS一致的新字段,告诉您该属性的名称是什么)
  • 更改对象,以便属性名称不会更改。

优先选择第二个选项。