Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gson-序列化java pojo时包含类名->;json_Java_Json_Gson - Fatal编程技术网

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

gson-序列化java pojo时包含类名->;json,java,json,gson,Java,Json,Gson,如何将列表的类名附加到输出的json字符串中?我已经看过了这本书,但没有提到这一点。我正在使用我的真实代码,但也看不到任何选项 public class Person { String name; public Person(String name){ this.name = name; } public static void main(String [] args){ Person one = new Person("Alice"); Person

如何将列表的类名附加到输出的json字符串中?我已经看过了这本书,但没有提到这一点。我正在使用我的真实代码,但也看不到任何选项

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);
  }
}
公共类人物{
字符串名;
公众人物(字符串名称){
this.name=名称;
}
公共静态void main(字符串[]args){
第一人=新人(“爱丽丝”);
第二人=新人(“鲍勃”);
List people=new ArrayList();
增加(一);
增加(两人);
String json=new Gson(人);
}
}
这将提供以下输出:

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

如何实现以下输出?或类似内容

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

json=[{“个人”:{“姓名”:“爱丽丝”},{“个人”:{“姓名”:“鲍勃”}]


希望这是我刚刚错过的一件小事。提前谢谢。

我不知道你对答案是否感兴趣,但你可以做以下几点:

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"}]}
}
publicstaticvoidmain(字符串[]args){
第一人=新人(“爱丽丝”);
第二人=新人(“鲍勃”);
List people=new ArrayList();
增加(一);
增加(两人);
Gson Gson=新的Gson();
JsonElement je=gson.toJsonTree(人);
JsonObject jo=新的JsonObject();
jo.添加(“人”,je);
System.out.println(jo.toString());//打印{“person”:[{“name”:“Alice”},{“name”:“Bob”}]}
}

最简单的解决方案可能是创建另一个类,其中包含一些名为“person”的变量(或person类型列表)。这个问题解决的问题与所接受的答案基本相同。