簡體   English   中英

Gson JsonObject全局變量

[英]Gson JsonObject global variable

我正在使用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"}}

我使用Gson 2.2.2時遇到了同樣的問題。

當我升級到Gson 2.2.3時,我在序列化JsonObject時得到了預期的JSON。

為someInfo使用Map:

public class Person
{
   private String name;
   private Map<Object, Object> someInfo;

   public Person()
   {
   }

}

Person person = new Person();
person.name = "Charles";
person.someInfo = new HashMap<Object, Object>();
person.someInfo.put("key1","value1");

雖然使用適當的getter / setter來訪問Person變量會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM