如何用Java生成Json

如何用Java生成Json,java,json,Java,Json,我正在开发一个应用程序,在这个应用程序中,我必须生成一个json,如下所示: [ {"title":"Culture","start":"Salary","end":"Work"}, {"title":"Work","start":"Salary","end":"Work"} ] 但我的代码生成的json如下: {{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],} Gson gson = new Gson(); Strin

我正在开发一个应用程序,在这个应用程序中,我必须生成一个json,如下所示:

[
  {"title":"Culture","start":"Salary","end":"Work"},
  {"title":"Work","start":"Salary","end":"Work"}
]
但我的代码生成的json如下:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);
我的代码:

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);

    }

}
公共类解析JSON{
公共静态类EntryListContainer{
public List children=new ArrayList();
公众入口名称;
}
公共静态类条目{
私有字符串名称;
公共条目(字符串名称){
this.name=名称;
}
}
公共静态void main(字符串[]args){
EntryListContainer elc1=新的EntryListContainer();
elc1.name=新条目(“文化”);
elc1.子女。添加(新条目(“工资”);
elc1.儿童。添加(新条目(“工作”);
ArrayList al=新的ArrayList();
Gson g=新的Gson();
加上(elc1);
StringBuilder sb=新的StringBuilder(“{”);
对于(EntryListContainer elc:al){
sb.append(g.toJson(elc.name));
某人加上(“,”);
sb.append(g.toJson(elc.children));
某人加上(“,”);
}
字符串partialJson=sb.toString();
如果(al.size()>1){
int c=partialJson.lastIndexOf(“,”);
partialJson=partialJson.substring(0,c);
}
字符串finalJson=partialJson+“}”;
System.out.println(finalJson);
}
}
有人能帮我以我需要的格式生成这个json吗??请提前感谢

试试这个

public class Entry {
    public String title;
    public String start;
    public String end;
}
在代码的另一部分

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

// Fill the entries...

String the_json = new Gson().toJson(entries);
private ArrayList entries=new ArrayList();
//填写条目。。。
字符串_json=new Gson().toJson(条目);
试试这个

public class Entry {
    public String title;
    public String start;
    public String end;
}
在代码的另一部分

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

// Fill the entries...

String the_json = new Gson().toJson(entries);
private ArrayList entries=new ArrayList();
//填写条目。。。
字符串_json=new Gson().toJson(条目);
1)首先创建您的POJO

public class MyJSONObject {

    private String title;
    private String start;
    private String end;

    //getter and setter methods

   [...]

    @Override
    public String toString() {

    }

}
2) 使用com.google.code.gson库

public static void main(String[] args) {

 {
    ArrayList<MyJSONObject> myJSONArray = new ArrayList<>();

    MyJSONObject obj = new MyJSONObject();
    obj.setTitle="Culture";
    obj.set[...]

    myJSONArray.add(obj);

    Gson gson = new Gson();

    // convert java object to JSON format,
    // and returned as JSON formatted string
    String json = gson.toJson(myJSONArray);

    System.out.println(json);
}
publicstaticvoidmain(字符串[]args){
{
ArrayList myJSONArray=新的ArrayList();
MyJSONObject obj=新的MyJSONObject();
obj.setTitle=“文化”;
对象集[…]
myJSONArray.add(obj);
Gson Gson=新的Gson();
//将java对象转换为JSON格式,
//并以JSON格式的字符串返回
字符串json=gson.toJson(myJSONArray);
System.out.println(json);
}
输出:[{“标题”:“文化”,“开始”:“工资”,“结束”:“工作”},…]

1) 首先创建您的POJO

public class MyJSONObject {

    private String title;
    private String start;
    private String end;

    //getter and setter methods

   [...]

    @Override
    public String toString() {

    }

}
2) 使用com.google.code.gson库

public static void main(String[] args) {

 {
    ArrayList<MyJSONObject> myJSONArray = new ArrayList<>();

    MyJSONObject obj = new MyJSONObject();
    obj.setTitle="Culture";
    obj.set[...]

    myJSONArray.add(obj);

    Gson gson = new Gson();

    // convert java object to JSON format,
    // and returned as JSON formatted string
    String json = gson.toJson(myJSONArray);

    System.out.println(json);
}
publicstaticvoidmain(字符串[]args){
{
ArrayList myJSONArray=新的ArrayList();
MyJSONObject obj=新的MyJSONObject();
obj.setTitle=“文化”;
对象集[…]
myJSONArray.add(obj);
Gson Gson=新的Gson();
//将java对象转换为JSON格式,
//并以JSON格式的字符串返回
字符串json=gson.toJson(myJSONArray);
System.out.println(json);
}
输出:[{“标题”:“文化”,“开始”:“工资”,“结束”:“工作”},…]


我建议您使用一些JSON Java API,例如,从POJO对象生成字符串JSON或从字符串JSON创建POJO对象非常简单

从POJO对象生成字符串json的代码如下:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);
从字符串json创建POJO对象的代码如下:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);

请注意,不能使用循环引用序列化对象。这会导致无限递归。

我建议您使用一些JSON Java API,例如。从POJO对象生成字符串JSON或从字符串JSON创建POJO对象非常简单

从POJO对象生成字符串json的代码如下:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);
从字符串json创建POJO对象的代码如下:

{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);

请注意,您不能使用循环引用序列化对象。这会导致无限递归。

创建一个表示数据的类,然后使用Gson对该类进行字符串化。您可以编辑我的代码吗?我已经尝试过了?欢迎使用堆栈溢出!我为您所需的json模式添加了格式,还重写了几行以更正CTgramma并使您的问题简洁。祝您好运:首先,您需要名为
title
start
end
的字段。顺便说一句,我还建议您使用库来呈现json。这可能比您想象的要复杂。创建一个表示数据的类,然后使用Gson对该类进行字符串化。您可以编辑我的代码吗??我试过做一个??欢迎使用Stack Overflow!我为您所需的json模式添加了格式,还重写了几行以更正语法并使您的问题简洁。祝您好运:首先,您需要名为
title
start
end
的字段。顺便说一句,我还建议您使用renderi库这可能比你想象的要复杂。