gson - 在序列化java pojo时包含类名 - > json

fea*_*gal 5 java json gson

使用GSON如何将我的List的类名附加到输出的json字符串?我已经浏览了api并错过了任何参考来做这件事.我在我的实际代码中使用GsonBuilder,但也没有看到任何选项.

public class Person {
  String name;

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

  public static void main(String [] args){
    Person one = new Person("Alice");
    Person two = new Person("Bob");

    List<Person> people = new ArrayList<Person>();
    people.add(one);
    people.add(two); 

    String json = new Gson(people);
  }
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出:

json = [{"name":"Alice"},{"name":"Bob"}]

如何实现以下输出?或类似的东西.

json = {"person":[{"name":"Alice"},{"name":"Bob"}}}

要么

json = [{"person":{"name":"Alice"}},{"person":{"name":"Bob"}}]

希望我错过了一些微不足道的事情.提前致谢.

Pie*_*rre 5

我不知道答案是否仍然有趣,但您可以做的是以下内容:

public static void main(String [] args){
    Person one = new Person("Alice");
    Person two = new Person("Bob");

    List<Person> people = new ArrayList<Person>();
    people.add(one);
    people.add(two); 

    Gson gson = new Gson();
    JsonElement je = gson.toJsonTree(people);
    JsonObject jo = new JsonObject();
    jo.add("person", je);
    System.out.println(jo.toString()); //prints {"person":[{"name": "Alice"},{"name": "Bob"}]}
}
Run Code Online (Sandbox Code Playgroud)