无法访问 jQuery AJAX 调用中的对象属性

Can't access object properties in jQuery AJAX call

本文关键字:对象 属性 调用 AJAX 访问 jQuery      更新时间:2023-09-26

当我调用此代码时:

console.log(data);
console.log(data.email);

我得到这个结果:

{"userName":"2","email":"2","firstName":"2","lastName":"2","isAdmin":"0","isEnabled":"1"} index.php:162
undefined 

第一个console.log(data);正确输出。 然后,我想访问data对象的 email 属性,为此我使用 console.log(data.email); . 但是,正如您在上面看到的,它说它是"未定义的"。

为什么我无法访问此属性(或任何属性)? 注意:我也尝试了data['email']也不起作用。

我没有

意识到jQuery不会自动将返回的JSON解析为对象。 它只是一个 JSON 字符串。 要修复,我只需要这样做:

data = JSON.parse(data);

跨浏览器:

data = $.parseJSON(data);

就我而言,我可以通过控制台.log显示对象,但我无法访问任何简单属性:我没有意识到我的 JSON 结构错误,作为一个只有一个对象的数组。然后我可以使用索引访问其属性。

console.log(data.email);

undefined

但后来我试过了...

console.log(data[0].email);

finallyhereismyattribute@json.com

我刚刚修复了我的模型,它工作得很好。感谢我的同事亚伦·利尔!

我遇到了同样的问题。为了修复它,我需要创建新数组,然后通过迭代"data"将数据对象的每个值放入该数组中,如下所示:

var arrayTest = [];
$.each(data, function (index, value) {
    arrayTest["email"] = value.email;
    arrayTest["andsoforth"] = value.andsoforth;
    //etc...
});
// Now retrieve data by using arrayTest
console.log(arrayTest["email"]);