簡體   English   中英

序列化時Java GSON替換成員對象

[英]Java gson replace member object when serialized

我正在嘗試為輸出JSON文件設計一個更扁平的結構。 如何做到這一點,以便在我使用gson.toJson() ,將使用對象的ID對成員對象進行序列化,而不是對整個對象進行序列化?

例如:

class Foo {
    public int id;
}

class Bar {
    public Foo foo = new Foo();
    public String data = "something";
}

我希望gson.toJson(bar)輸出如下內容: {"foo": 1029, "data":"something"}

也許是這樣的:

public class FooBarAdapter implements JsonSerializer<Bar> {

   @Override
   public JsonElement serialize(Bar bar, Type typeOfObj,
        JsonSerializationContext context)
   {

       JsonObject obj = new JsonObject();
       obj.addProperty("foo", bar.foo.id);
       obj.addProperty("data", bar.data);

       return obj;
   }

}

然后要序列化時:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Bar.class, new FooBarAdapter());
return gsonBuilder.create().toJson(bar);

暫無
暫無

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

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