2012-07-18 92 views
1

我有2所列出的Java看起來像(的ArrayList)浮標,利斯塔和X的數組listB和y協調:整合多個Java的ArrayList到一個單一的JSON對象

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,但我看不到一個簡潔的方式來做到這一點 - 有沒有比設置每個鍵的循環和手動追加「[{...」etc?

謝謝!

+0

但是你需要什麼?如何使用Gson?如何合併列表? – davidbuzatto 2012-07-18 15:47:43

回答

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); 
相關問題