我知道这似乎是一个简单的问题,但我现在已经工作了两个小时了。使用ajax请求,我在成功函数中收到了一些数据:
success: function (data) {
alert(data);
console.log(data);
}
在控制台中,这是输出:
[
{
"field1":0,
"field2":"yes",
"myArray":[
{
"fieldInner1":"nice",
"fieldInner2":105532,
},
{
"fieldInner1":"nice",
"fieldInner2":99960,
}]
}
]
在我看来,这是一个包含一个对象的数组(这是我的意图)。 但是,当我写
时alert(data[0].field1);
相反,它说未定义。当我试着写它data[0]
时,它也是未定义的。帮助
答案 0 :(得分:0)
可能是因为响应是字符串格式。使用JSON.parse(data)[0].field1
答案 1 :(得分:-1)
我试过这个,似乎按预期工作了。
这不是你得到的吗?
编辑:更新的代码。
另请注意使用JSON.stringify
。
var data = [
{
"field1":0,
"field2":"yes",
"myArray":[
{
"fieldInner1":"nice",
"fieldInner2":105532,
},
{
"fieldInner1":"nice",
"fieldInner2":99960,
}]
}
]
function df1(){
alert(data[0].field1);
}
function d0(){
alert(JSON.stringify(data[0]));
}
function d(){
alert(JSON.stringify(data));
}

<!DOCTYPE html>
<html>
<body>
<h1>Alert buttons...</h1>
<button onclick="df1()">alert - data[0].field1</button>
<button onclick="d0()">alert - data[0]</button>
<button onclick="d()">alert - data</button>
</body>
</html>
&#13;