有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将多个java ArrayList合并到单个json对象中

我有两个java浮点数列表(ArrayList),x和y坐标的ListA和ListB如下所示:

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

我想创建一个json对象,将两个ArrayList合并为一个json对象,如下所示:

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

我可以用flot绘图

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

谢谢


共 (1) 个答案

  1. # 1 楼答案

    我想我知道你需要什么。 您正在尝试创建对象结构,以便按照所显示的格式创建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 );