springmvc 返回 json 里面的 map 顺序反掉了

2019-05-21 11:45:48 +08:00
 fdgdbr

这是返回之前的对象 https://i.loli.net/2019/05/21/5ce37374e9edc63235.png 这是返回之后 postman 里面数据 https://i.loli.net/2019/05/21/5ce3737b9cb9e16987.png 即使用了 treemap 还是不行,请大佬指教 用的框架是 springboot,版本 2.1.4

6301 次点击
所在节点    Java
30 条回复
palmers
2019-05-21 19:00:52 +08:00
我觉得就算对象属性顺序是正确的, 使用 Object.keys 顺序也没有保证
oneisall8955
2019-05-21 20:01:13 +08:00
map 无序呀。。。
johnj
2019-05-21 20:26:35 +08:00
即使在 Java 里有有序的 map,转到 json 就变成无序的了。
choice4
2019-05-21 22:29:49 +08:00
人家明明是 linkedhashmap 一堆人非要拿 map 无序说事。。
zhuweiyou
2019-05-21 23:13:46 +08:00
哪怕你 map 顺序是对的。给前端用,对象也是无序的。。。应该用数组返回
wwqgtxx
2019-05-21 23:19:00 +08:00
我记得在 vue.js 中特别提到了这个问题,js 中的 object 是无序的,所以应该选择使用数组或者是指定一个 id 字段来排序
cway
2019-05-21 23:33:49 +08:00
本来就是无序的,如果是用 new JSONObject()的话可以在括号里加个 true 就成有序的了,不写的话默认是 false
kaneg
2019-05-21 23:40:22 +08:00
通用的 map 的 key 是无序的,这是常识。至于 json 就更是这样了。至于特定的实现保持 key 的顺序或者 key 重排序等,那必须在接口中指定才行,否则一律按照通用 map 对待。
Navee
2019-05-22 00:15:37 +08:00
其实你应该用一个有序的 array 存 key,使用数据时遍历 array 去 map 取 value
azh7138m
2019-05-22 00:27:19 +08:00
@fhsan 嘛,前端可以手动有序,stable 的 stringify 也是不少的,偶尔会用到

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566151

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX