我的@JsonFormat和@JsonDeserialize的一些枚举界面:
@Entity
@Table(name = "clients")
class ClientJpa {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")
@SequenceGenerator(name="generator", sequenceName = "cliSeq", allocationSize = 1)
var surrogateKey: Int = _
var code: String = _
var name: String = _
}
我将它用于这样的枚举:
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonDeserialize(using = JsonEnumDeserializer.class)
public interface JsonEnum {
@JsonProperty("symbol")
String getSymbol();
@JsonProperty("name")
String name();
}
当我序列化public enum MyEnum implements JsonEnum {
VALUE1("v1"), VALUE2("v2"), VALUE3("v3");
private final String symbol;
}
时,我得到了正确的对象。但是,当我想将对象反序列化为MyEnum
时,我的自定义反序列化器(JsonEnumDeserializer)不会被调用。
如果我在MyEnum
之上添加@JsonDeserialize,那么它工作正常,但我希望为我的所有实现MyEnum
的枚举设置通用反序列化器。