无法访问 jQuery AJAX 调用中的对象属性
Can't access object properties in jQuery AJAX call
当我调用此代码时:
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"]);
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 如何将数组项添加到对象属性中
- 设置嵌套对象属性的更好方法
- JavaScript管理具有重复属性名称的对象属性
- 如何使用element.myobj.prop等具有对象属性的元素
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 如何在AngularJS工厂中正确声明对象属性
- 如何使用object.assign()从其他对象引用基本对象属性
- 使用XPath样式访问Javascript JSON对象属性
- 将javascript对象(属性+值)合并到一个对象中
- 数组:使对象属性成为数组键
- 无法从JavaScript中的函数调用对象属性
- Google Closure Advanced |无法识别对象属性|动态属性
- Javascript从匿名函数访问外部对象属性
- 从函数更改对象属性
- 如何从字符串变量访问对象属性
- 从嵌套对象属性中获取排除某个值的最高值
- 在Aurelia computeds中,当设置依赖关系时,如何声明对对象属性的依赖关系
- 传递数量不确定的可能嵌套的对象属性