[更新]我已经编辑了我的答案,因为它应该返回不同的 json。我不知道这是否是最佳解决方案,但它有效,并且易于阅读和维护。
根据 Anand 的回答,这里是一个使用 Gson 的简单示例。我认为这是一个很好的解决方案,因为您需要做的就是创建 POJO 并使用 Gson/Jackson 将其序列化为 json。您不需要手动创建 json 对象。
JsonTest 主类:
import java.util.ArrayList;
import com.google.gson.Gson;
public class JsonTest {
public static void main(String[] main) {
Entry entry1 = new Entry();
entry1.setId(1);
entry1.setType("USER");
entry1.setProperty("Salary");
Entry entry2 = new Entry();
entry2.setId(2);
entry2.setType("EMP");
Entry entry3 = new Entry();
entry3.setId(2);
entry3.setType("EMP");
entry3.setProperty("Work");
Entry entry4 = new Entry();
entry4.setId(2);
entry4.setType("EMP");
EntryListContainer entryListContainer = new EntryListContainer();
ArrayList<Entry> entryList1 = new ArrayList<Entry>();
ArrayList<Entry> entryList2 = new ArrayList<Entry>();
entryList1.add(entry1);
entryList1.add(entry2);
entryList2.add(entry3);
entryList2.add(entry4);
entryListContainer.setEntryList1(entryList1);
entryListContainer.setEntryList2(entryList2);
String json = new Gson().toJson(entryListContainer, EntryListContainer.class);
System.out.println(json);
}
}
EntryListContainer 类:
import java.util.ArrayList;
import com.google.gson.annotations.SerializedName;
public class EntryListContainer {
@SerializedName("Entry1")
private ArrayList<Entry> entryList1;
@SerializedName("Entry2")
private ArrayList<Entry> entryList2;
public void setEntryList1(ArrayList<Entry> entryList1) {
this.entryList1 = entryList1;
}
public ArrayList<Entry> getEntryList1() {
return entryList1;
}
public void setEntryList2(ArrayList<Entry> entryList2) {
this.entryList2 = entryList2;
}
public ArrayList<Entry> getEntryList2() {
return entryList2;
}
}
入口 POJO:
public class Entry {
private int id;
private String type;
private String property;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
它将返回这个 json:
{
"Entry1":[
{
"id":1,
"type":"USER",
"property":"Salary"
},
{
"id":2,
"type":"EMP"
}
],
"Entry2":[
{
"id":2,
"type":"EMP",
"property":"Work"
},
{
"id":2,
"type":"EMP"
}
]
}