为了账号安全,请及时绑定邮箱和手机立即绑定

Jackson 序列化后功能

Jackson 序列化后功能

潇湘沐 2021-10-17 15:52:00
我在同一个对象中序列化多个列表,并希望clear()在对象序列化后调用所有列表。当前的方法是在序列化后在每个列表上手动调用 clear() 但我希望有更强大的方法,例如使用自定义JsonSerializer或AtomicReference.我几乎没有经验,JsonSerializer希望有人能提供一个例子来实现这一点。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贡献1810条经验 获得超5个赞

类似于以下内容:


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返回类型,即不期望返回某些内容。它应用在对象的序列化版本中写入的副作用。


查看完整回答
反对 回复 2021-10-17
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信