即使使用 jackson-datatype-jsr310,Instant 也无法序列化为适当的格式

Posted

技术标签:

【中文标题】即使使用 jackson-datatype-jsr310,Instant 也无法序列化为适当的格式【英文标题】:Instant cannot be serialized to appropriate format even with jackson-datatype-jsr310 【发布时间】:2017-12-05 19:20:48 【问题描述】:

添加以下依赖项:

compile("com.fasterxml.jackson.module:jackson-module-parameter-names:2.8.9")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.8.9")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.9")

我现在可以使用 Instant 反序列化以下 JSON:


    "timestamp": $timestamp

到以下对象:

Transaction(timestamp=2017-07-02T10:58:18Z)

使用以下类声明

data class Transaction(@NotNull val timestamp: Instant)

但是,之后立即序列化时,我得到以下信息:


  "timestamp": 1498992172

我正在使用 Spring BootKotlin

【问题讨论】:

【参考方案1】:

你需要禁用feature WRITE_DATES_AS_TIMESTAMPS:

这可以通过在 application.yml 文件中添加以下内容来实现:

spring:
  jackson:
    serialization:
      WRITE_DATES_AS_TIMESTAMPS: false

【讨论】:

以上是关于即使使用 jackson-datatype-jsr310,Instant 也无法序列化为适当的格式的主要内容,如果未能解决你的问题,请参考以下文章

将 json 日期转换为 Jackson 的众多日期之一

为啥即使使用单个 reducer 也会调用 Partitioner

为啥即使使用提交后 sql plus 也不会保存新行?

即使我在 laravel 中使用 updateorcreate 方法,为啥还要复制数据

为啥即使使用 QThreadPool,GUI 也会冻结?

为啥 isConfiguration:compatibleWithStoreMetadata 会返回 yes,即使使用了映射模型?