一尘不染

gson-序列化Java Pojo时包含类名称-> json

json

使用GSON,如何将列表的类名称附加到输出的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);
  }
}

这给出以下输出:

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

如何获得以下输出? 或类似的东西。

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

要么

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

希望这是我刚刚错过的琐碎事情。提前致谢。


阅读 326

收藏
2020-07-27

共1个答案

一尘不染

我不知道答案是否仍然很有趣,但是您可以执行以下操作:

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"}]}
}
2020-07-27