Javascript对象的属性已定义,但在我尝试使用它时返回undefined

时间:2013-02-21 22:48:07

标签: javascript jquery javascript-objects

我对此完全感到困惑。我有一个通过jquery ajax调用返回的对象。我可以看一下对象本身,它的属性是明确定义的。当我尝试实际访问这些属性时,它返回undefined。例如:

console.log("data: " + data + ", data['ID']: " + data['ID']);

在控制台中打印:

data: {"ID":"2"}, data['ID']: undefined

世界上有什么可能导致这种情况?

编辑:

仅仅因为很多人问过,它对data.ID做了同样的事情。所以这个:

console.log("data: " + data + ", data.ID: " + data.ID);

打印出来:

data: {"ID":"2"}, data.ID: undefined 

2 个答案:

答案 0 :(得分:3)

如果数据是一个对象而不是你看到的[object Object],但是你看到一个字符串,你的响应只是一个纯文本,所以你需要先解析它才能成为一个javascript对象。

使用jQuery,你可以这样做:

var dataAsObj = $.parseJSON(data)

答案 1 :(得分:2)

我认为你的数据是一个字符串,这就是为什么会发生这种情况。

试试这个:JSON.parse(data);