java接口返回map集合数据;前端ajax获取,遍历时无序

因业务需求,在同一张表格中,将地区、全国业务数据 按年份分组统计,将相同年份的数据组装成一条数据在表格中对比显示。效果图如下:

当前地区

全国

年度

季度

成交额

净利润

成交额

净利润

2019

1季度

 

 

 

 

2018

4季度

 

 

 

 

因为要求按年度倒序,我利用TreeMap做了排序处理:

//封装结果为   Map> 格式
Map> resultMap = new TreeMap<>(new Comparator(){
    @Override
    public int compare(String o1, String o2){
        return o2.compareTo(o1);
    } //按时间倒序
});

最后将集合返回。

 

前端ajax取到的数据:接下格式如下:

java接口返回map集合数据;前端ajax获取,遍历时无序_第1张图片

 

前端ajax取到数据后,遍历代码:

java接口返回map集合数据;前端ajax获取,遍历时无序_第2张图片

 

实际展示效果始终是按年份正序。

 

后来,在后台将map集合遍历封装到了list集合,问题解决。

 

回想了下排序无效的原因:

首先,无论后台是那种集合,前端js取到的都是json数据。而json要么是对象,要么就是对象数组。

然后,Map返回到前端是一个json对象,对象是按属性取值的,key就相当于对象的属性,有什么可以为属性排序吗??

list返回到前端是json对象数组,数组是按下标有序的。下图list集合返回的格式:

java接口返回map集合数据;前端ajax获取,遍历时无序_第3张图片

 

所以,前端需要排序的话,后端必须返回json数组。

你可能感兴趣的:(集合,javaEE,spring)