0
需要明確的是,讓introduse一些模型:GSON:序列化/類的反序列化對象,已註冊類型層次適配器,使用ReflectiveTypeAdapterFactory.Adapter
interface A {
boolean isSomeCase();
}
class AAdapter implements JsonSerializer<A> {
public JsonElement serialize(A src, Type typeOfSrc, JsonSerializationContext context) {
if (src.isSomeCase()) {
/* some logic */
return result;
} else {
JsonObject json = new JsonObject();
JsonElement valueJson = <???>; // TODO serialize src like POJO
json.add(src.getClass().getSimpleName(), valueJson);
return json;
}
}
}
Gson gson = new GsonBuilder()
.registerTypeHierarchyAdapter(A.class. new AAdapter())
.create();
它是如何可能的serealize的A
某些情況下,其中isSomeCase()
= false
,與其他任何對象一樣,由ReflectiveTypeAdapterFactory.Adapter
序列化。
我已經解決了問題,這種方式(使用'TypeAdapterFactory')。但是你已經介紹了'getDelegateAdapter'方法。我曾經使用過版本2.1,它在那裏被取消。所以你已經讓我的代碼更清潔了。非常感謝! – 2014-10-28 10:25:59