Gson JsonObject全局变量

我正在使用Gson API并创建了一个类:

public class Person { private String name; private JsonObject someInfo; public Person() { } } 

当我使用以下方法实现此类的实例时:

 Person person = new Person(); person.name = "Charles" person.someInfo = new JsonObject(); person.someInfo.addProperty("key1","value1"); Gson gson = new Gson(); String jsonStr = gson.toJson(person); 

我在成员属性中获取信息:

 {"members":{"name":"Charles","someInfo":{"key1":"value1"}}} 

我注意到如果我将Person的类someInfo全局变量声明为JsonElement而不是JsonObject,则信息会正确显示。

有没有办法使用JsonObject实现信息?

我的期望是:

 {"name":"Charles","someInfo":{"key1":"value1"}} 

使用某个地图为您的someInfo:

 public class Person { private String name; private Map someInfo; public Person() { } } Person person = new Person(); person.name = "Charles"; person.someInfo = new HashMap(); person.someInfo.put("key1","value1"); 

虽然使用适当的getter / setter来访问Person变量会更好。

我使用Gson 2.2.2时遇到了同样的问题。

当我升级到Gson 2.2.3时,我在序列化JsonObject时得到了预期的JSON。