【发布时间】:2016-12-08 15:46:02
【问题描述】:
我想在 flink 流处理作业中将对象序列化为 Json。在 flink 作业中,所有对象都需要可序列化。
我正在使用 Jackson 来序列化我的对象。
final ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
当我使用这个时,我得到以下异常:
java.io.NotSerializableException: com.fasterxml.jackson.datatype.joda.cfg.JacksonJodaDateFormat
如何使包含 joda 模块的对象映射器可序列化?
【问题讨论】:
-
您尝试序列化的对象到底是什么样的?看起来它有一个
JacksonJodaDateFormat作为成员变量,它不是可以转换为 JSON 表示的对象。您可能希望使用@JsonIgnore排除该字段。 -
@Jesper 这不是序列化为 JSON 的问题(如果需要,Jackson 序列化
JacksonJodaDateFormat应该没有问题,尽管那没有用处)。这是Java序列化。JacksonJodaDateFormat不是Serializable。 -
@SotiriosDelimanolis 啊,是的,我明白了。在这种情况下,CPA 当然可以填写
transient字段,如果这适用于他的申请。 -
@Soitirious 是的,它是 java 序列化。 Jesper 的问题是,该字段不在我的代码中,而是在 JodaModule 类中。 ://
-
为什么要序列化
JodaModule实例或ObjectMapper?你在做什么?请提供minimal reproducible example。
标签: java json serialization jackson apache-flink