如何用Java生成Json

luc*_*fer 1 java json

我正在开发一个应用程序,我必须生成这样的json:

[
  {"title":"Culture","start":"Salary","end":"Work"},
  {"title":"Work","start":"Salary","end":"Work"}
]
Run Code Online (Sandbox Code Playgroud)

但我的代码生成json像这样:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Run Code Online (Sandbox Code Playgroud)

我的代码:

public class ParseJson {



public static class EntryListContainer {

    public List<Entry> children = new ArrayList<Entry>();
    public Entry name;

}

public static class Entry {

    private String name;

    public Entry(String name) {
        this.name = name;
    }

}



public static void main(String[] args) {
    EntryListContainer elc1 = new EntryListContainer();
    elc1.name = new Entry("Culture");
    elc1.children.add(new Entry("Salary"));
    elc1.children.add(new Entry("Work"));




    ArrayList<EntryListContainer> al = new ArrayList<EntryListContainer>();
    Gson g = new Gson();

    al.add(elc1);


    StringBuilder sb = new StringBuilder("{");
    for (EntryListContainer elc : al) {

        sb.append(g.toJson(elc.name));
        sb.append(",");
        sb.append(g.toJson(elc.children));
        sb.append(",");
    }

    String partialJson = sb.toString();

    if (al.size() > 1) {
        int c = partialJson.lastIndexOf(",");
        partialJson = partialJson.substring(0, c);
    }

    String finalJson = partialJson + "}";
    System.out.println(finalJson);

    }

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我以我所需的格式生成这个json吗?请提前感谢

小智 5

试试这个

public class Entry {
    public String title;
    public String start;
    public String end;
}
Run Code Online (Sandbox Code Playgroud)

在代码的另一部分

private ArrayList<Entry> entries = new ArrayList<>();

// Fill the entries...

String the_json = new Gson().toJson(entries);
Run Code Online (Sandbox Code Playgroud)