我在同一個對象中序列化多個列表,并希望clear()在對象序列化后調(diào)用所有列表。當(dāng)前的方法是在序列化后在每個列表上手動調(diào)用 clear() 但我希望有更強(qiáng)大的方法,例如使用自定義JsonSerializer或AtomicReference.我?guī)缀鯖]有經(jīng)驗,JsonSerializer希望有人能提供一個例子來實現(xiàn)這一點。public class ResetSerializer extends JsonSerializer<Collection> { @Override public void serialize(Collection t, JsonGenerator jg, SerializerProvider sp) throws IOException { if (t != null) { String jsonList = ???; // how do I generate the JSON output of this list with a custom serializer? t.clear(); return jsonList; } }}
1 回答

森欄
TA貢獻(xiàn)1810條經(jīng)驗 獲得超5個贊
類似于以下內(nèi)容:
public class ResetSerializer extends JsonSerializer<Collection> {
@Override
public void serialize(Collection t, JsonGenerator jg, SerializerProvider sp) throws IOException {
if (t != null) {
jg.writeStartArray();
for (Object o: t) {
jg.writeObject(o);
}
jg.writeEndArray();
t.clear();
}
}
}
請注意,此方法具有void返回類型,即不期望返回某些內(nèi)容。它應(yīng)用在對象的序列化版本中寫入的副作用。
添加回答
舉報
0/150
提交
取消