一个让我头疼的Json字符串问题,拼了一天没拼出来。
例二:
因为我现在要讲这个结果变成一个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);
array.add(array1);
array.add(array2);
array.add(array3);
System.out.println(array);
// 运行结果[[2010,6545],[2011,6631],[2012,6139]]
JSONObject object = new JSONObject();
object.put("data", array);
System.out.println(object);
// 运行结果{"data":[[2010,6545],[2011,6631],[2012,6139]]}
JSONObject object1 = new JSONObject();
object1.put("data", array);
JSONArray data = new JSONArray();
data.add(object);
data.add(object1);
System.out.println(data);
// 运行结果[{"data":[[2010,6545],[2011,6631],[2012,6139]]},{"data":[[2010,6545],[2011,6631],[2012,6139]]}]
}