这是返回之前的对象 https://i.loli.net/2019/05/21/5ce37374e9edc63235.png 这是返回之后 postman 里面数据 https://i.loli.net/2019/05/21/5ce3737b9cb9e16987.png 即使用了 treemap 还是不行,请大佬指教 用的框架是 springboot,版本 2.1.4
这是返回之前的对象 https://i.loli.net/2019/05/21/5ce37374e9edc63235.png 这是返回之后 postman 里面数据 https://i.loli.net/2019/05/21/5ce3737b9cb9e16987.png 即使用了 treemap 还是不行,请大佬指教 用的框架是 springboot,版本 2.1.4
|
1
奇怪的是这个 2018 和 2019 里面还是个 map,但是里面的 map 顺序是对的
|
|
kimchanMay 21, 2019
2
python 的 map 是无序的. 不是 java 是不是也是因为这个原因
|
|
fireyeMay 21, 2019
3
前端重排序或者 [{},...]
|
|
zvcsMay 21, 2019 via Android
4
map 不保证顺序。保证顺序要用 linkhashmap
|
|
wz74666291May 21, 2019 via iPhone
5
是不是应该用 linkedHashMap 而不是 treeMap 呀
|
|
6
返回给前端转换成数组,前端大部分情况下 Map 都不支持有序。
|
|
geelawMay 21, 2019 via iPhone
8
map 通常没有保持原来 key 顺序的功能。你不应该依赖 JSON 对象里面 key 的顺序,先写后写都是相等的对象。
|
|
iyaozhenMay 21, 2019 via Android
9
一个 map 什么场景需要顺序呢?
|
|
reusMay 21, 2019
10
这不叫问题,这叫特性
json 的对象型数据,键就是无序的 如果想有序,请用数组 不要想着“解决”这个“问题”,应该修改你的程序,让它不依赖这个顺序 |
|
miceanMay 21, 2019
11
treemap 有啥用……
你的 spring 配置的是 jackson 吗?直接在项目里 autowire objectmapper,把结果打印出来比对一下是不是序列化的锅就知道了 |
|
CitrusMay 21, 2019 via iPhone
12
Json 的 Map 本身也是无序的吧,印象中一般的库都不保证顺序的
|
|
miceanMay 21, 2019
13
检查下 SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS 这个配置是不是 false
|
|
johnniangMay 21, 2019 via Android
14
你可能需要一个 SortedMap
|
|
15
JSON 中没有 Map 这种数据结构,如果你指的是 object 的话,JSON 定义的 object 的键值对是无序的, http://json.org
|
|
watzdsMay 21, 2019 via Android
16
有些时候找到的办法,要想想你的方法是不是完全错了,前提就不对
|
|
HuHuiMay 21, 2019 via Android
18
前段排就完事儿了,别纠结
|
|
beidounanxiziMay 21, 2019 via iPhone
19
序列化组件没配置的原因吧,大哥你就这么想,拼接成字符串,你要是写个序列化的 json 组件你怎么写?
|
|
br00kMay 21, 2019
20
Map 顺序无法保证的。就算你返回的有序,但是客户端处理成字典或对象以后,并不一定会按照你的顺序来。有序还是用 List。
|
|
palmersMay 21, 2019
21
我觉得就算对象属性顺序是正确的, 使用 Object.keys 顺序也没有保证
|
|
itechifyMay 21, 2019 via Android
22
map 无序呀。。。
|
|
johnjMay 21, 2019
23
即使在 Java 里有有序的 map,转到 json 就变成无序的了。
|
|
JohnZornMay 21, 2019 via Android
24
人家明明是 linkedhashmap 一堆人非要拿 map 无序说事。。
|
|
zhuweiyouMay 21, 2019
25
哪怕你 map 顺序是对的。给前端用,对象也是无序的。。。应该用数组返回
|
|
wwqgtxxMay 21, 2019
26
我记得在 vue.js 中特别提到了这个问题,js 中的 object 是无序的,所以应该选择使用数组或者是指定一个 id 字段来排序
|
|
cwayMay 21, 2019
27
本来就是无序的,如果是用 new JSONObject()的话可以在括号里加个 true 就成有序的了,不写的话默认是 false
|
|
kanegMay 21, 2019 via iPhone
28
通用的 map 的 key 是无序的,这是常识。至于 json 就更是这样了。至于特定的实现保持 key 的顺序或者 key 重排序等,那必须在接口中指定才行,否则一律按照通用 map 对待。
|
|
NaveeMay 22, 2019
29
其实你应该用一个有序的 array 存 key,使用数据时遍历 array 去 map 取 value
|