1

我想从 java 类创建以下 json 有效负载。只有一个条件,Subgroup1 可以为空,这意味着组可能/可能没有 subgroup1。不知道怎么做。任何帮助将不胜感激。提前致谢!如果需要,我可以更改课程。

{
    "data" : [
            {
              "id": "1",
              "name": "ab",
              "children": [
                        {
                          "id": "1",
                          "name": "xyz",
                          "children": [
                                                { "id": "1",
                                                 "name": "opl"
                                                } ] 
                        }
                ]
            },
            {
              "id":" 2",
              "name": "cd",
              "children": [
                    {
                      "id": "1",
                      "name": "ijk",
                      "children": [
                                    { "id": "1",
                                      "name": "rty"},
                                        { "id": "2",
                                          "name": "wsc"
                                        } ]
                    },
                    {
                      "id": "2",
                      "name": "lmn",
                      "children": [
                                        { "id": "1",
                                          "name": "qaz"},
                                        { "id": "2",
                                          "name": "poi"
                                        } ]
                    },
                    {
                      "id": "3",
                      "name": "opq",
                      "children": [
                                        { "id": "1",
                                          "name": "edf"},
                                        { "id": "2",
                                          "name": "bhgga"
                                        } ]
                    }
              ]
            },
            {
              "id": "3",
              "name": "ef",
              "children": [
                      { 
                        "id": null,
                        "name": null,
                        "children": [
                                            { "id": "2",
                                              "name": "ijyuht"
                                        } ]
                        }
                    ]
            }
        ]
  }

我有 3 个不同的 java 类来映射对象。

数据类

public class Data {

    private Long id;
    private String name;
    private List<Subgroup1> children;
}

子组1.class

public class Subgroup1 {

    private Long id;
    private String name;
    private List<Subgroup2> children;
}

子组2.class

public class Subgroup2 {

    private Long id;
    private String name;

}
4

1 回答 1

0

创建类结构如下:

public class MainClass {

private List<Datum> data;

}


public class Datum {

private List<Child> children;
private String id;
private String name;

}

public class Child {

private List<Child> children;
private String id;
private String name;

}

您可以在 Java 中使用以下格式,它只是一种您可以以多种方式进行的方式,正如我以一种简单的方式所解释的那样。

    MainClass mainClass = new MainClass();
    
    List<Child> level2List = new ArrayList<>();
    Child level2Child = new Child();
    level2Child.setName("opl");
    level2Child.setId("1");
    level2List.add(level2Child);


    List<Child> childList = new ArrayList<>();
    Child child = new Child();
    child.setChildren(level2List);
    child.setId("1");
    child.setName("xyz");
    childList.add(child);


    Datum datum = new Datum();
    datum.setChildren(childList);
    datum.setId("1");
    datum.setName("ab");

    List<Datum> datumList = new ArrayList<>();
    datumList.add(datum);
    mainClass.setData(datumList);
    System.out.println(new Gson().toJson(mainClass));
于 2020-07-25T04:10:32.417 回答