[{pjcj=161.0, CESHIRIQI=2011, SUOSHUQUYU=通州区}, {pjcj=166.0, CESHIRIQI=2012, SUOSHUQUYU=通州区}, {pjcj=159.5, CESHIRIQI=2014, SUOSHUQUYU=通州区}, {pjcj=180.0, CESHIRIQI=2015, SUOSHUQUYU=通州区}, {pjcj=140.5, CESHIRIQI=2016, SUOSHUQUYU=东城区}, {pjcj=167.94, CESHIRIQI=2016, SUOSHUQUYU=密云区}, {pjcj=169.45, CESHIRIQI=2016, SUOSHUQUYU=房山区}, {pjcj=161.91, CESHIRIQI=2016, SUOSHUQUYU=昌平区}, {pjcj=166.75, CESHIRIQI=2017, SUOSHUQUYU=亦庄经济开发区}, {pjcj=162.63, CESHIRIQI=2017, SUOSHUQUYU=延庆}, {pjcj=163.21, CESHIRIQI=2017, SUOSHUQUYU=怀柔区}, {pjcj=166.43, CESHIRIQI=2017, SUOSHUQUYU=石景山区}, {pjcj=164.08, CESHIRIQI=2017, SUOSHUQUYU=通州区}, {pjcj=167.53, CESHIRIQI=2017, SUOSHUQUYU=门头沟区}, {pjcj=164.37, CESHIRIQI=2017, SUOSHUQUYU=顺义区}, {pjcj=166.58, CESHIRIQI=2017, SUOSHUQUYU=首都职工体质促进中心}]
这是得到的数据,如何才能变成
series: [{
name: '通州',
data: [161.0, 166.0, 159.5, 180.0]
},
类似于这种格式,一个地区,对应一个集合。
如何将list《map》(String ,object)转化成。list!!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 乔丹码得 2017-05-23 09:02关注
##这个可以用alibaba的fastjson来做,把字符串转化成类对象,然后做归总
##下面提供个不用fastjson的比较死的方法来做(不是很好),但也可用import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { public static void main(String arg[]){ List<Map<String,Object>> mapList=new ArrayList<>(); Map<String,Object> map1=new HashMap<>(); map1.put("pjcj",161.1); map1.put("CESHIRIQI",2014); map1.put("SUOSHUQUYU","通州区"); Map<String,Object> map2=new HashMap<>(); map2.put("pjcj",162.0); map2.put("CESHIRIQI",2015); map2.put("SUOSHUQUYU","通州区"); Map<String,Object> map3=new HashMap<>(); map3.put("pjcj",151.0); map3.put("CESHIRIQI",2014); map3.put("SUOSHUQUYU","房山区"); Map<String,Object> map4=new HashMap<>(); map4.put("pjcj",152.0); map4.put("CESHIRIQI",2014); map4.put("SUOSHUQUYU","房山区"); mapList.add(map1); mapList.add(map2); mapList.add(map3); mapList.add(map4); Map<String,List<Double>> areaData=new HashMap<>(); for (Map<String,Object> map:mapList) { String areaName=(String) map.get("SUOSHUQUYU"); double data=(double)map.get("pjcj"); if(areaData.get(areaName)!=null){ List<Double> datas=areaData.get(areaName); datas.add(data); }else{ List<Double> datass=new ArrayList<Double>(); datass.add(data); areaData.put(areaName,datass); } } List<Map<String,Object>> series=new ArrayList<>(); for (String key: areaData.keySet()) { Map<String,Object> map=new HashMap<>(); map.put("name",key); map.put("data",areaData.get(key)); series.add(map); } String json=JSON.toJSONString(series); System.out.print(json); } }
结果:[{"name":"房山区","data":[151,152]},{"name":"通州区","data":[161.1,162]}]
注意依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.8</version> </dependency>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 求数学坐标画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了
- ¥15 链式存储应该如何解决
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站