AJAX:访问返回List的元素

时间:2018-03-25 13:07:13

标签: jquery ajax

我有一个用户界面,用户可以在其中搜索用户+电子邮件。此请求将发送到我的Spring MVC Controller,并返回AjaxResponseBody个对象。 此对象包含字段messagecodeusers列表。

浏览器也会收到这些数据但我无法以某种方式加入此列表。我通过迭代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 + "]";
    }    
}

效应初探

enter image description here

1 个答案:

答案 0 :(得分:0)

你必须遍历data.result,如

resultObj = data.result
 for (var i in resultObj ){ 
   alert(resultObj[i].email, resultObj[i].username, resultObj [i].phone); 
 }