【问题标题】:Formatting JSON data with "ObjectMapper"使用“ObjectMapper”格式化 JSON 数据
【发布时间】:2023-04-04 19:43:01
【问题描述】:

我有一个字段:

@NotNull
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate date;

但是当我得到 JSON 格式的数据时 - 它是另一个:

"date":{"year":2020,"month":"JANUARY","monthValue":1,"dayOfMonth":6,"dayOfWeek":"MONDAY","dayOfYear":6,"era":"CE","chronology":{"calendarType":"iso8601","id":"ISO"},"leapYear":true}

如何解决?

【问题讨论】:

  • 请向我们展示您的其余代码
  • 如果我没记错的话,我通过在对象映射器上禁用 SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 来解决这个问题。
  • 请检查您的导入并告知 JsonFormat 属于哪个库?

标签: java json spring datetime localdate


【解决方案1】:

你可以为它编写一个自定义的序列化器/反序列化器。

@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
private LocalDate date;

本文详细介绍了如何创建这些类 - https://kodejava.org/how-to-format-localdate-object-using-jackson/

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2015-12-18
    • 2020-02-12
    • 1970-01-01
    相关资源
    最近更新 更多