在Ajax Post中发送HashMap时,返回值顺序会发生变化

时间:2017-06-20 05:53:05

标签: javascript java ajax spring

我使用 Spring 作为后端,使用 Ajax 来获取和发布数据。在我的控制器中,我返回 HashMap 。一切都很好。但是当我在javascript文件中接收数据时,数据顺序正在发生变化。我做错了什么?

例如,当我发送

map.put("name","aaa");
map.put("name","bbb");
map.put("name","ccc");

在js文件中我获得了不同的顺序,如ccc,aaa,bbb。更改的订单始终相同。它不是随机的。

以下是我正在使用的一些代码。

控制器

@RequestMapping(value = "/history", method = RequestMethod.GET)
public @ResponseBody Map<String, myModel> getHistory() {

    Map<String, ChatModel> userInfo = md.getUserInfo(userId);

    return userInfo;
}

获取方法

$.ajax({
        contentType: "application/json;charset=utf-8",
        type : "GET",
        url : "../Spring4MVCHelloWord/history/",
        dataType : 'json',   
        success: function(data){

            displayHistory(data);
        },

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

    });

1 个答案:

答案 0 :(得分:1)

尝试使用 LinkedHashMap LinkedHashMap将按照条目放入地图的顺序进行迭代。如果性能是您想要的,并且您可以取消订购,那么请使用HashMap。