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

使用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 people = new ArrayList(); people.add(one); people.add(two); String json = new Gson(people); } } 

这给出了以下输出:

json = [{“name”:“Alice”},{“name”:“Bob”}]

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

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

要么

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

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

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

 public static void main(String [] args){ Person one = new Person("Alice"); Person two = new Person("Bob"); List people = new ArrayList(); 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"}]} }