【问题标题】:How to use Jackson DataType: JSR310 Deser standalone?如何使用 Jackson DataType: JSR310 Deser 独立?
【发布时间】:2019-10-20 02:52:41
【问题描述】:

我正在从A 类型转换为B 类型的情况。 A 类型的日期字段为 YearMonth 类型,B 类型的日期字段为 String。我不想重新发明轮子,所以如果我可以使用 Jackson DataType JSR310 库进行此转换,那就太好了。

但是,我很困惑如何以独立的方式使用YearMonthSerializer 的公共serialize 方法; YearMonthDeserializer 的公共 deserialize 方法也是如此。

serializeJsonGeneratorSerializationProvider(什么?)旁边接受 YearMonth(很好),我不确定如何检索,而 derialize 甚至没有 @987654337 @ 作为参数,只是 JsonParserDeserializationContext

我不想以 @JsonSerialize(using = YearMonthSerializer.class) 的典型方式使用这个库,因为我没有将整个 POJO 转换为 JSON 字符串,只是将一个 YearMonth 字段转换为 String

基于这些 API,尽管看起来我绝对不打算以这种期望的方式使用该库。

Here 是指向 javadoc 的链接。

【问题讨论】:

    标签: java jackson jsr310


    【解决方案1】:

    为什么不使用日期字段上方的@JsonSerialize(using = YearMonthSerializer.class) 而不是类上方。因为你不想将它用于整个 POJO

    【讨论】:

    • 添加注解不会序列化一个值,它会告诉 Jackson 序列化器在尝试序列化整个 POJO 时如何序列化该字段。但问题是,我不是要序列化整个 POJO,只是一个字段。
    • 无论如何,您将要从类型 A 转换为类型 B,在该转换器中为什么不使用该字段的转换器。或者您将使用预定义的来执行此操作。如果是这样 YearMonth.toString() 会给你字符串
    • 是的,我可能应该只制作一个预定义的转换器,因为它只是年和月。字面意思是两个整数。
    猜你喜欢
    • 2021-08-19
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2019-01-09
    • 2021-12-17
    • 2015-06-16
    相关资源
    最近更新 更多