遍历ajax响应

时间:2019-09-17 19:36:20

标签: jquery ajax

我有一个ajax响应,我想对其进行迭代以提取所需的数据。此刻,我将第一个结果的值显示在页面上的输入框中,但是我不知道如何显示其他结果,从而创建了一个列表。

这是我的ajax请求,它正确显示了第一条记录的结果:

$.ajax({
    url: "messageAPI",
    method: "get",
    type: "application/json",
    success: function (result) {
        console.log(result);

        let message = result["Data"]["dsMessage"]["ttMessage"][0];
        $(".reference").val(message.reference);
        $(".date").val(message.date);

    },
    error: function (result) {
        console.log(result);
    }

});

这是我当前在页面上显示数据的方式:

<input class="date" />

这是我的JSON文件的简化版本:

{"Data":{"dsMessage":{"ttMessage":
[
{"date":"2018-02-09","reference":"Call Mr Jones ",0},
{"date":"2018-03-08","reference":"Call Mr Smith ",0},
]
}}}

我一直在网上搜索,从我阅读的for循环中可以看到成功函数,但是我不确定如何构造它。我尝试了一些我在网上找到的东西,但是没有用。

我尝试了这段代码,但是没有产生任何结果或错误:

 $.each(Message.items, function (index, Message) {
                    alert(Message.reference)
                });

我有点茫然,由于我没有经验,所以我不知道从这里去哪里。任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

我这样修改了您的JSON:

{"Data":{"dsMessage":{"ttMessage":
[
{"date":"2018-02-09","reference":"Call Mr Jones ", "index": 0},
{"date":"2018-03-08","reference":"Call Mr Smith ", "index": 0}
]
}}}

请注意每个零之前的"index":。还删除了数组中的尾部逗号,但这可能会或可能不会给您带来麻烦。

那时,我这样迭代:

for (var m = 0; m < result["Data"]["dsMessage"]["ttMessage"].length; m ++) {
    var message = result["Data"]["dsMessage"]["ttMessage"][m];
    console.log(message.reference); // do what you want with this
    console.log(message.date); // and this
}