在手冊there is a sample中,僅包含原始情況。如何在一般情況下實現JsonSerializer的序列化?
如果我的情況不是原始的呢?
假設我有一個類,它有一個默認序列化的問題(在我的情況下,它是無窮遞歸)。
Th類包含多個字段,其中一些是「主」,另一個是服務。
所以我需要只序列化「主」字段,並從它們派生服務。
class MyType1 {
MyType2 a; // "main" field
MyType3 b; // service fiels
}
class MySerializer implements JsonSerializer<MyType1> {
@Override
public JsonElement serialize(MyType1 arg0, Type arg1, JsonSerializationContext arg2) {
JsonObject ans = new JsonObject();
// ans.add("a", ... // what to write here? How to wrap a into JsonElement?
return ans;
}
}
我知道我可以使用關鍵字transient
對於這種特殊情況下。但問題是關於編寫序列化程序。
UPDATE
我強調的是,使用瞬態不是一個答案。我的問題是關於自定義序列化器。如何寫他們?
目前還不清楚你問這裏。如果你不想在你的序列化程序中序列化某些字段,那麼......不會將它們添加到你要返回的JsonElement中。 –
如何只給'JsonElement'添加'a'?如何添加任何東西到'JsonElement',知道它是抽象類? –