【问题标题】:jackson-dataformat-csv: cannot serialize LocalDatejackson-dataformat-csv:无法序列化 LocalDate
【发布时间】:2017-10-24 11:11:49
【问题描述】:

当我尝试序列化包含本地日期的对象时,出现以下错误:

csv 生成器不支持属性的对象值

我启用了 JSR-310 模块,使用 WRITE_DATES_AS_TIMESTAMPS,我可以毫无问题地将同一个对象转换为 JSON。

现在我求助于将对象映射到另一个仅字符串对象,但它既颓废又浪费。

Jackson csv 映射器有没有办法确认 localDates?我应该以某种方式专门为 csv 映射器启用 JSR-310 吗?

【问题讨论】:

    标签: jackson export-to-csv


    【解决方案1】:

    由于在架构之后配置映射器,我遇到了同样的问题。确保您使用的是最新版本的 jackson 及其模块。这段代码对我有用:

    final CsvMapper mapper = new CsvMapper();
    mapper.findAndRegisterModules();
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); //Optional
    final CsvSchema schema = mapper.schemaFor(PojoWithLocalDate.class);
    // Use this mapper and schema as you need to: get readers, writers etc.
    

    Pojo 类中不需要额外的注释。

    【讨论】:

    • 恭喜您获得第一个被接受的答案!继续努力。
    • 我注意到的一些重要的事情:1) findAndRegisterModules 是必需的,否则错误会持续存在 2) mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) 可以替换为 Mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) 3)确认Pojo类中不需要注释
    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 2017-01-11
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2015-05-19
    • 2017-03-06
    相关资源
    最近更新 更多