我有一个用户界面,用户可以在其中搜索用户+电子邮件。此请求将发送到我的Spring MVC Controller,并返回AjaxResponseBody
个对象。
此对象包含字段message
,code
和users
列表。
浏览器也会收到这些数据但我无法以某种方式加入此列表。我通过迭代JSON响应尝试了几种方法但没有成功。
我想直接访问密钥"结果"在JSON响应中,您可以看到我的问题下面的图片并使用列表元素。此外,我想在一个警告框中一次显示整个返回的列表。
JS:
function searchViaAjax() {
var search = {};
search["username"] = $("#username").val();
search["email"] = $("#email").val();
$.ajax({
type: "POST",
contentType: "application/json",
url: "search/api/getSearchResult",
data: JSON.stringify(search),
dataType: 'json',
timeout: 100000,
success: function (data) {
console.log("SUCCESS: ", data);
display("SUCCESS");
for (var i in data){
alert(i); //attempt to iterate over the items.
}
jQuery.each(function (key, value) {
alert(key, value); //second attempt to iterate over the items.
})
},
error: function (e) {
console.log("ERROR: ", e);
display("ERROR");
//display(2);
},
done: function (e) {
console.log("DONE");
display("DONE");
enableSearchButton(true);
}
});
}
AjaxResponseBody类
@ResponseBody
public class AjaxResponseBody {
@JsonView(Views.Public.class)
String msg;
@JsonView(Views.Public.class)
String code;
@JsonView(Views.Public.class)
List<User> result;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public List<User> getResult() {
return result;
}
public void setResult(List<User> result) {
this.result = result;
}
@Override
public String toString() {
return "AjaxResponseResult [msg=" + msg + ", code=" + code + ", result=" + result + "]";
}
}
效应初探
答案 0 :(得分:0)
你必须遍历data.result,如
resultObj = data.result
for (var i in resultObj ){
alert(resultObj[i].email, resultObj[i].username, resultObj [i].phone);
}