【发布时间】:2020-12-08 16:27:16
【问题描述】:
我有一个简单的 (groovy) 枚举:
enum OutputType {
skip( 'gray' ), left( 'orange' ), right( 'cyan' )
final String color
private OutputType( String color ) {
this.color = color
}
}
我想用 Jackson 序列化它,所以它看起来像(伪 JSON):
{ skip:gray, left:orange, right:cyan }
或者换句话说,name() 到 color 对象。
如何用普通的 Jackson 实现这一目标?
【问题讨论】:
-
您必须自己写
JsonSerializer才能做到这一点。 -
@SotiriosDelimanolis 现在我做
OutputType.values().collectEntries{ [ it.name(), it.color ] } -
@injecteer,将其转换为
Map并将其序列化为原始对象可能是最简单(最好)的选择。JsonSerializer用于将实例而不是整个enum序列化为JSON Obect。