在手册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',知道它是抽象类? –