将多个java arraylists合并为一个json对象

时间:2012-07-18 15:27:27

标签: java json list gson flot

我有两个浮动的List列表(Arraylists),ListA和ListB的x和y协调,看起来像:

ListA = 10.1, 17.3, 30.0
ListB = 1.4, -14.7, 5.1

我想创建一个json对象,以便将两个arraylists合并为一个json对象:

[ { label: "A", data: [ [10.1, 1.4], [17.3, -14.7], [30.0, 5.1] ] }]

我可以使用flot进行绘图。

我一直在看Gson lib,但我看不到一个简洁的方法来做到这一点 - 是否有一种比为每个键设置循环并手动附加“[{...”更简单的方法等?

谢谢!

1 个答案:

答案 0 :(得分:2)

我想我理解你的需要。 您正在尝试创建对象结构,以便以您显示的格式创建JSON。我对吗?所以,试试类似:

// define a class to represent each graph
public class GraphData {

    private String label;
    private List<Float[]> data;

    // gets and sets to label and data

}

需要将浮点数组列表填充为(使用listA和listB):

List<Float[]> yourFirstListOfData = new ArrayList<Float[]>();
for ( int i = 0; i < listA.size(); i++ ) {
    yourFirstListOfData.add( new Float[]{ listA.get(i), listB.get(i) } );
}

生成JSON(在另一个类中):

List<GraphData> graphList = new ArrayList<GraphData>();

GraphData graphData1 = new GraphData();
graphData1.setLabe1( "A" );
graphData1.setData( yourFirstListOfData );

GraphData graphData2 = new GraphData();
graphData2.setLabel( "B" );
graphData2.setData( yourSecondListOfData );

graphList.add(graphData1);
graphList.add(graphData2);

Gson gson = new Gson();
String json = gson.toJson( graphList );

// prints the generated json
System.out.println( json );