javascript - Ajax Post发送HashMap时返回值顺序发生变化

标签 javascript java ajax spring

我使用 Spring 作为后端,并使用 Ajax 来获取和发布数据。在我的 Controller 中,我返回HashMap。一切正常。但是当我收到 javascript 文件中的数据时,数据顺序正在改变。我做错了什么?

例如当我发送时

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

在 js 文件中,我得到不同的顺序,如 ccc、aaa、bbb。更改后的顺序始终相同。它不是随机的。

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

Controller

@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);
        }

    });

最佳答案

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

关于javascript - Ajax Post发送HashMap时返回值顺序发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44644822/

相关文章:

javascript - React Native 可以在 sleep 模式下工作吗?

javascript - TinyMCE v3.4.5 仍在删除 <a href ="#"> 即使在 extended_valid_elements 中强制 <a>

javascript - 在web中显示java servlet进程

java - 退出应用程序前按两次后退按钮

jquery - 成功时重定向并失败时显示错误

javascript - 通过匹配 Javascript/AngularJS 中的参数来查找对象

javascript - 如何在 JavaScript 中复制一个对象?

java - Firefox 浏览器/服务器协商的选定密码与 Tomcat 配置的密码列表不匹配

javascript - API请求方式

javascript - 如何将列表从 Controller 传递到 View 和显示