我正在开发一个应用程序,我必须生成这样的json:
[
{"title":"Culture","start":"Salary","end":"Work"},
{"title":"Work","start":"Salary","end":"Work"}
]
但是我的代码会像这样生成json:
{{"name":"Culture"},[{"name":"Salary"},{"name":"Work"}],}
我的代码:
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吗?请提前致谢
答案 0 :(得分:5)
试试这个
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);
答案 1 :(得分:1)
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);
}
输出:[{“title”:“Culture”,“start”:“Salary”,“end”:“Work”},...]
答案 2 :(得分:0)
我建议您使用一些JSON Java API,例如Gson。从POJO对象生成字符串json或从字符串json创建POJO对象非常简单。
从POJO对象生成字符串json的代码如下:
Gson gson = new Gson();
String stringJson = gson.toJson(somePojoObject);
从字符串json创建POJO对象的代码如下:
Gson gson = new Gson();
SomePojoClass object = gson.fromJson(stringJson, SomePojoClass.class);
请注意,您无法使用循环引用序列化对象。这会导致无限递归。