[英]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.