未定义访问JSON对象中的数组元素

时间:2014-10-30 06:41:44

标签: javascript arrays json undefined

我相对较新的javascript和JSON的新手,并且完成了更改内部网站的工作,因此它符合我们新的公司需求。 我试图访问一个带有数组的JSON对象。除了数组之外,这实际上适用于大多数对象。每当我尝试访问数组中的元素时,我都会得到未定义或NaN。

当我这样做时

alert(JSON.stringify(object.data.average[0]));
我得到以下输出

[{"test_count2":"360","succeeded":"185"}]

所以我知道我想要访问的对象在那里,但是当我这样做时

alert(JSON.stringify(object.data.average[0].succeeded))

alert(JSON.stringify(object.data.average[0]['succeeded']))

我总是得到

undefined

我在这里做错了吗? 我很伤心,我是一个新人,所以请耐心等待我;)

提前感谢!

4 个答案:

答案 0 :(得分:1)

尝试使用JSON.stringify(object.data.average[0][0].succeeded)。 似乎object.data.average[0]返回一个包含单个元素的数组。 此外,您可以使用console.log(object.data),而不是alert。在现代Web浏览器中更容易在控制台中查看对象的树表示,而不是像过去那样警告字符串值。

答案 1 :(得分:0)

因为它是另一个阵列,你必须这样做

object.data.average[0][0]['succeeded'];

答案 2 :(得分:0)

您似乎忘记了阵列中有另一个对象。尝试,

alert(JSON.stringify(object.data.average[0][0].succeeded))

答案 3 :(得分:0)

假设您要从“stringified json”访问成功的值,您需要转换字符串'[{“test_count2”:“360”,“succeeded”:“185”}]'现在是返回json对象的普通字符串。

步骤是:     var str ='[{“test_count2”:“360”,“成功”:“185”}]';     var obj = JSON.parse(str); //此函数将JSON.stringify对json的作用反转     警报(obj.succeeded); //输出:185

希望我很清楚:)