function getReportedInfo(id) {
$.ajax({
url: 'includes/get_data.php',
type: 'POST',
data: {id:id},
dataType: 'json',
success: function(data) {
console.log(data);
}
});
};
从 get_data.php 脚本返回的 JSON 对象是:
{
id: 5,
username: "Anthony",
status: "accupied"
}
如果我执行console.log(data.length),我就可以获得数据对象的长度。但是,当我在 success 属性中 console.log(data) 时,我可以看到该对象。 如果我执行 console.log(data.username) ,我将无法访问数据对象的元素,这样做在控制台中显示未定义。 我在函数 getReportedInfo 的范围之外创建了一个变量 data1,并将通过 success 属性检索到的数据分配给 当我尝试在函数外部显示 data1 的内容后,这个变量出现了。
最佳答案
听起来data
是一个字符串而不是一个对象。您可以使用 JSON.parse
将其转换为对象。尝试以下代码。
function getReportedInfo(id) {
$.ajax({
url: 'includes/get_data.php',
type: 'POST',
data: {id:id},
dataType: 'json',
success: function(data) {
var dataObject = JSON.parse(data);
console.log(dataObject.username);
}
});
};
编辑
在下面的评论中与OP讨论后,确定返回的对象data
的结构如下,并且已经是对象形式(不是字符串)
{
"0": {
id: 5,
username: "Anthony",
status: "accupied"
}
}
因此下面的代码应该可以工作。
function getReportedInfo(id) {
$.ajax({
url: 'includes/get_data.php',
type: 'POST',
data: {id:id},
dataType: 'json',
success: function(data) {
console.log(data["0"].username);
}
});
};
关于javascript - 如何在$.ajax方法的success属性中访问对象的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47931083/