行专列,拆分json,实现数据的展示。Map<String, Object>存储多个相同的key,List<Map<String, Object>>

来源:互联网 发布:龙虎山的旅游收入数据 编辑:程序博客网 时间:2024/04/30 09:20

问题描述:

前台表格数据行转换列,json数据是一组表示一行数据,现在需求需要实现每一列数据是一组json

后台拆分json,重组多个json方便纵列显示。

本次只展示一组日期(map<String、Object>),其他的同理,省略。

把多天的数据拆分成jsonDate,jsonQydh等多个

数据展示:(测试数据不真实)

周五,广东玉米库存情况预测---》

[{sortno=1, zh=-5.58, bz=粤电55:5.1万吨, dh=5.1, qckc=57.3, arrive_date=20170624, totalFlag=1, nmrj=2.79, qmkc=67.98, zrj=2.79, tj_date=20170405, rows=0}, {sortno=2, zh=5.696, bz=安秀山:1.7万吨, dh=1.7, qckc=67.98, arrive_date=20170626, totalFlag=0, nmrj=2.848, qmkc=63.984, zrj=2.848, tj_date=20170405, rows=6}, {sortno=3, zh=5.7294, bz=嘉诚山:4.6万吨, dh=4.6, qckc=63.984, arrive_date=20170628, totalFlag=0, nmrj=2.8647, qmkc=62.8546, zrj=2.8647, tj_date=20170405, rows=0}, {sortno=4, zh=10.962, bz=育德:2万吨, dh=2, qckc=62.8546, arrive_date=20170702, totalFlag=0, nmrj=2.7405, qmkc=53.8926, zrj=2.7405, tj_date=20170405, rows=0}, {sortno=5, zh=2.7405, bz=华强:3.8万吨,友威:1.6万吨, dh=5.4, qckc=53.8926, arrive_date=20170703, totalFlag=0, nmrj=2.7405, qmkc=56.5521, zrj=2.7405, tj_date=20170405, rows=0}, {sortno=6, zh=19.1835, bz=富兴22:3万吨,安诚山:5万吨, dh=8, qckc=56.5521, arrive_date=20170710, totalFlag=0, nmrj=2.7405, qmkc=45.3686, zrj=2.7405, tj_date=20170405, rows=0}, {sortno=7, zh=2.7405, bz=远慧海:5万吨, dh=5, qckc=45.3686, arrive_date=20170711, totalFlag=0, nmrj=2.7405, qmkc=47.6281, zrj=2.7405, tj_date=20170405, rows=0}]


junit层

@Test
public void test05() throws Exception {
PropertiesUtil util = new PropertiesUtil();
String strKbDate="20170405";
List params =new ArrayList<>();
params.add(strKbDate);
//周五,广东玉米库存情况预测
   String gdkcyc = util.getPropertyName("logiInfo.function.此处不方便全部展示_gdkcyc");
   JSONArray jsonA=new JSONArray();
   jsonA=JSONArray.fromObject(this.logiInfoService.getWlxxDataMap(gdkcyc, params));
   System.out.println("-->"+JSONArray.fromObject(this.logiInfoService.getWlxxDataMap(gdkcyc, params)));
System.out.println("gdkcycList---》"+JSONArray.fromObject(this.logiInfoService.getWlxxDataMap(gdkcyc, params)).toString());
List<Map<String, Object>> daylist=new ArrayList();
for (int i = 0; i < jsonA.size(); i++) {
JSONObject jsonb=new JSONObject();
jsonb=(JSONObject) jsonA.get(i);
System.out.println("---"+jsonb);
String strDate=null;
strDate=jsonb.getString("arrive_date");
Map<String, Object> map1=new HashMap();
map1.put("arrive_date", jsonb.getString("arrive_date"));
daylist.add(map1);
       Map<String, Object> map2=new HashMap();
//        map2.put("", value);
System.out.println("---strDate:"+strDate);
}
System.out.println("list-->"+daylist);
}


--------------------------------------------------------------------------------------------------------------------------------------------

展示结果

list-->[{arrive_date=20170624}, {arrive_date=20170626}, {arrive_date=20170628}, {arrive_date=20170702}, {arrive_date=20170703}, {arrive_date=20170710}, {arrive_date=20170711}]


解决需求,解决行专列问题,要不改sql或函数,如果不方便改那要从业务中控制修改原始json,拆分成想要的某个属性的list形式的json传到前台。


写的仓促,如有错误,欢迎指出

原创粉丝点击