【发布时间】:2020-03-28 10:55:45
【问题描述】:
我想通过 Jackson 序列化 FAIL 对象:
interface OptionalResult<out ResultType : Any> {
val data: ResultType?
object FAIL : OptionalResult<Nothing> {
override val data: Nothing? = null
}
}
我收到的是{},但我希望收到{"data": null}。
如何修复我的对象?
顺便说一下,下面的对象被正确序列化了:
object FAIL : OptionalResult<Int> {
override val data: Int? = null
}
【问题讨论】:
-
用
@JsonSerialize(using = MyCustomSerializer::class)注释FAIL对象有效!但是,这需要 9 行额外的代码。是否还有其他变体,例如以某种方式注释data? -
现在好像没有办法让它更简洁了。可以在此处找到自定义序列化程序的示例:github.com/FasterXML/jackson-module-kotlin/issues/314