JSON parse error: Cannot deserialize value of type `java.util.Date` from String “2024-09-19 10:40:40

7,412次阅读
没有评论

共计 868 个字符,预计需要花费 3 分钟才能阅读完成。

解决 JSON parse error: Cannot deserialize value of type 的问题

在使用 Feign 进行服务间通信时,可能会遇到 JSON parse error: Cannot deserialize value of type 异常,特别是在解析 JSON 响应时。例如,以下异常信息提示了一个关于日期格式的问题:
 在这里插入图片描述

问题原因

该异常的根本原因是尝试将 JSON 字符串 "2024-09-19 10:40:43" 反序列化为 java.util.Date 类型时,Jackson 无法识别该格式。默认情况下,Jackson 使用 yyyy-MM-dd'T'HH:mm:ss.SSSZ 格式来解析日期,而我们的日期字符串不符合这个格式。

解决方案
  1. 更改日期格式 :确保返回的 JSON 中的日期格式符合 Jackson 的默认格式,或使用自定义格式。

  2. 自定义反序列化 :在 UserDto 类中,使用 @JsonFormat 注解指定正确的日期格式。例如:

     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date pwdResetTime;
    
  3. 全局配置 :在 Spring Boot 的配置中,全局设置 Jackson 的日期格式:

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        return mapper;
    }
    

原文地址: JSON parse error: Cannot deserialize value of type `java.util.Date` from String“2024-09-19 10:40:40

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-29发表,共计868字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)