日期:2014-05-18  浏览次数:20776 次

一个让我头疼的Json字符串问题,拼了一天没拼出来。
本帖最后由 u011928511 于 2013-09-13 09:15:25 编辑
ResultSet中的结果是这样的。(year可增加,例:2010,2011,2012....; a可增加,例:a0,a1,a2...a11)


a一共十二个,从a0开始。
年不限。
c数据和本问题无关

例一:

例二:


因为我现在要讲这个结果变成一个json字符串,然后传给前台,生成一个折线图
效果如图:


对应的Json字符串是:[{data:[[2010,6545],[2011,6631],[2012,6139]]},{data:[[2010,25295],[2011,25386],[2012,23875]]},{data:[[2010,2594],[2011,4566],[2012,2147]]}]

首先我需要先要将ResultSet转换成List或是别的,因为ResultSet传不到外边。我应该怎么设计bean和应该怎么才能拼成这种Json串
json list 字符串

------解决方案--------------------
没有关系的 Map<String, List<Map<String, String>>>  dataList=new HashMap<String,  List<Map<String, String>>>();

 Map<String, List<Map<String, String>>>
     year       a0 ->123 a1-->324 等等。

应该可以的。
 
------解决方案--------------------
晕死,这个不是拼List,而是应该拼对象。。
其实更合理的拼写法是以年份为对象拼写的。
而你拼出来的那个根本就不算是json传吧。
按照你的想法,对象应该这样构建
class D{
A1 a1;
A2 a2;
A3 a3;
}
class A1{
List<Data> list
}
class Data{
String year;
int num;
}

------解决方案--------------------
直接用JSONObject和JSONArray来处理撒....(需要json相关的jar包)

public static void main(String[] args) throws Exception{
JSONArray array = new JSONArray();
JSONArray array1 = new JSONArray();
array1.add(2010);
array1.add(6545);
JSONArray array2 = new JSONArray();
array2.add(2011);
array2.add(6631);
JSONArray array3 = new JSONArray();
array3.add(2012);
array3.add(6139);