Javascript 返回值顺序是在Ajax Post中发送HashMap时更改的

Javascript 返回值顺序是在Ajax Post中发送HashMap时更改的,javascript,java,ajax,spring,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(

我使用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;
}

试着改用LinkedHashMap。
LinkedHashMap
将按照条目放入映射的顺序进行迭代。如果性能是您想要的,并且您可以取消排序,那么可以使用HashMap

$.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);
        }

    });