1

我有 2 个浮点数的 Java 列表(Arraylists),x 和 y 协调的 ListA 和 ListB,如下所示:

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

我想创建一个 json 对象,以便将两个数组列表合并为一个 json 对象,如下所示:

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

我可以使用 flot进行绘图。

我一直在查看Gson 库,但我看不到一个简洁的方法来做到这一点 - 有没有比为每个键设置循环并手动附加 "[ { ..." 等更简单的方法吗?

谢谢!

4

1 回答 1

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 );
于 2012-07-18T16:01:58.477 回答