{"state":1,
"price_ladder": [
{
"amount": 5,
"price": 23,
"formated_price": "¥23.00元"
},
{
"amount": 10,
"price": 20,
"formated_price": "¥20.00元"
}
]
}
如上的例子,我要返回类似上面格式的数据,怎么处理呢?
@ResponseBody public Map<String,Object> loadMap() { Map<String,Object> map = new HashMap<String,Object>(); map.put("state", 1); map.put("list", mapService.findAll()); return map; }
findAll返回的是一个集合,集合中有所有需要的字段。
但是结果却是这样:
{"state":1,"list":["ETohOXuwR","甘肃金昌热电厂","AcXit1rCQD","二车间一号机组",0.0,0.0,"http://basdasd.com","pXcuFLXAR6aqS/","北京有限公司","QZqRPO8wS3","华能淮阴电厂6#出口",0.0,0.0,"http://basdasd.com"]}
怎么处理我得到集合才能转换成上面要求的数据格式呢?
求大神帮忙指点
所需要的所有字段是四张表联合查询查出来的;
实体类是用数据库自动生成的,最后查出来的是一个集合;
现在我不知道怎么写才能将结果集变成目标的格式?
你查询的实体和你需要显示的实体字段名称不相同,你做一下转换即可。。
class B { private int amount; private int price; private String formated_price;}
class A{ private int state; private List<B> price_ladder; }
在查询findAll完的时候转换成A,然后直接返回A即可
你的意思是我需要新建一个类,这个类存那些要显示的字段,然后将我查出来的数据转换到新建的类的属性里,然后将新建的类返回吗?
@冰原小白狼: 对,或者你就是用注解,java注解也行?
@Kencery: 哥们,方便留个联系方式吗?我试了下,但报错
class B { private int amount; private int price; private String formated_price;}
class A{ private int state; private List<B> price_ladder; }
用类做比hashMap好理解点
格式那不都有了么?