【发布时间】:2021-02-06 20:01:12
【问题描述】:
我有一个来自第三方库的类型(JSONB 来自 jooq),我为它编写了一个自定义序列化器/反序列化器:
@JsonComponent
public class JSONBSerializer extends JsonSerializer<JSONB> {
@Override
public void serialize(JSONB jsonb, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(jsonb.toString());
}
}
@JsonComponent
public class JSONBDeserializer extends JsonDeserializer<JSONB> {
@Override
public JSONB deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return JSONB.valueOf(jsonParser.getValueAsString());
}
}
我想知道是否有办法告诉 spring 或 jackson 默认使用这些,而不必用 @JsonSerialize(using = JSONBSerializer.class) 和 @JsonDeserialize(using = JSONBDeserializer.class) 注释项目中的每个 JSONB 字段?
【问题讨论】:
标签: java spring spring-boot jackson jackson-databind