这是我从服务器收到的Json数据:
[
{"Name":"A"},
{"Name":"B"},
{"Name":"C"},
{"Name":null}
]
[
{"Name":null},
{"Name":"D"},
{"Name":null}
]
[
{...},
{...}
]
如何在AJAX成功属性中使用JQUERY解析它?
这是我的Ajax代码:
$.ajax({
url: '#.php',
type: 'post',
async: false,
data: {},
dataType: 'json',
success: function(data){
var str = JSON.stringify(data);
var obj = JSON.parse(str);
for(var i=0; i< data.length;i++)
{
alert(data[i].Name);
}
},
complete: function(xhr,status){
alert(status);
},
error: function(xhr){
alert("An error occured: " + xhr.status + " " + xhr.statusText );
alert("An error occured. Please Try Again");
}
})
此代码无法正常工作,并且在完成时会出现解析器错误。 我想显示收到的所有姓名。 请帮助。
答案 0 :(得分:2)
从服务器收到的数据是无效的JSON,如果是,那就是 类似的东西:
[
[{
"Name": "A"
}, {
"Name": "B"
}, {
"Name": "C"
}, {
"Name": null
}],
[{
"Name": null
}, {
"Name": "D"
}, {
"Name": null
}]
]
更容易解析:
[{
"Name": "A"
}, {
"Name": "B"
}, {
"Name": "C"
}, {
"Name": null
}, {
"Name": null
}, {
"Name": "D"
}, {
"Name": null
}]
答案 1 :(得分:1)
服务器返回的数据不符合JSON语法。 为了拥有合适的JSON结构,应该只有一个父对象而不是多个数组。
如果您可以修改服务器的输出,请考虑以下备选方案:
创建父数组:
[ your_arrays ]
然后访问data[0]
以检索success
函数中的数组。
创建父对象:
{myArrays : your_arrays}
然后访问data.myArrays
函数中的success
。