使用以下jQuery,我如何读取返回的JSON的值?凭借它如何,jQuery甚至无法运行,因为出现了错误:alert("A" + obj.sender[0]);
var session_id = $(this).find(".session_id").val();
$.ajax({
type: 'POST',
url: '../php/read.php',
dataType: "json",
data: {sesh_id: session_id},
success: function (response) {
var obj = jQuery.parseJSON(response);
alert("A" + obj.sender[0]);
},
error: function (response) {
alert("Err: " + response.status);
}
});
回复的价值是:
[{
"sender":"email@example.com",
"details":"details1",
"date":"2017-01-04 16:11:04"
},
{
"sender":"someone@example.com",
"details":"details2",
"date":"2017-01-04 16:11:05"
},
{
"sender":"blah@example.com",
"details":"details3",
"date":"2017-01-04 16:11:06"
}]
答案 0 :(得分:1)
您遇到的问题是您的索引访问者位置错误,因为obj
是一个数组,而不是sender
属性,所以它应该是obj[0].sender
。
您也不需要在响应上调用JSON.parse()
,因为jQuery会在您指定dataType: 'json'
时自动为您执行此操作。试试这个:
$.ajax({
type: 'POST',
url: '../php/read.php',
dataType: "json",
data: { sesh_id: session_id },
success: function (response) {
console.log("A" + obj[0].sender);
},
error: function (response) {
console.log("Err: " + response.status);
}
});
最后请注意,console.log()
在调试alert()
时更为可取,因为它不会强制数据类型。