2

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

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 
4

2 回答 2

3

如果 data 本来是一个对象,而不是您看到的 [object Object] 但您确实看到了一个字符串,那么您的响应只是一个纯文本,因此您需要先将其解析为 javascript 对象。

使用 jQuery,您可以这样做:

var dataAsObj = $.parseJSON(data)
于 2013-02-21T22:55:14.133 回答
2

我认为您的数据是一个字符串,这就是发生这种情况的原因。

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

于 2013-02-21T22:56:26.103 回答