首页 > 编程语言 >JSON parse error: Cannot deserialize value of type `java.util.Date` from String not a valid represen

JSON parse error: Cannot deserialize value of type `java.util.Date` from String not a valid represen

时间:2023-03-21 16:23:24浏览次数:26  
标签:03 12 java String 09 util 2023 Date 21

日志

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2023-03-21 09:12:33": not a valid representation (error: Failed to parse Date value '2023-03-21 09:12:33': Cannot parse date "2023-03-21 09:12:33": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null)); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2023-03-21 09:12:33": not a valid representation (error: Failed to parse Date value '2023-03-21 09:12:33': Cannot parse date "2023-03-21 09:12:33": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
 at [Source: (PushbackInputStream); line: 4, column: 21] (through reference chain: com.qiu.fragment.dto.GoodsInfoDto["productionDate"])]

接口请求入参的Bean
img

请求接口传参如下:

{
  "name": "",
  "price": 0.0,
  "productionDate": "2023-03-21 09:12:33",
  "expireDate": "2023-03-21"
}

接口请求出现:Cannot deserialize value of type java.util.Date from String,无法将字符串反序列化为Date类型,使用@DateTimeFormat(patter="yyyy-MM-dd")格式化也会失效。

这里并不是因为@DateTimeFormat注解导致的问题,而且因为@RequestBody注解会JSON序列化成Bean,然后请求接口传参的productionDate是字符串类型,对应的Bean是Date类型,就出现转换异常。

img

解决

使用@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")注解,完美解决。
img

对于@DateTimeFormat@JsonFormat这两个注解,网上查到的都是,@DateTimeFormat是后端接收前端的传入日期进行格式化,@JsonFormat是后端从数据库查到的日期格式化后返回给前端。

但我使用@DateTimeFormat并没有格式化也没有类型转换,疑惑不解???

标签:03,12,java,String,09,util,2023,Date,21
From: https://www.cnblogs.com/iqiuq/p/17240399.html

相关文章

  • Java 锁
    Java中的锁是一种同步机制,用于控制对共享资源的访问。锁提供了对共享资源的独占访问,以确保在给定时间内只有一个线程可以访问该资源。Java中有两种类型的锁:内置锁和显式锁......
  • 使用 ChatGPT 模型实现 JavaScript 加密解密技术
    以下是一个使用ChatGPT模型实现混淆加密解密的案例代码。该代码使用JavaScript编写,并且使用了TensorFlow.js库来加载和执行ChatGPT模型。代码的目的是将输入的文本......
  • java实现多字段排序(普通对象List和MapList)
    publicclassSortTest{publicstaticvoidmain(String[]args){//普通对象listsortVOList();//mapListsortMapList();......
  • 如何通过Java应用程序将PDF转为图片格式?
    PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,大家在工作中遇到PDF文件转图片文件的问题时是怎么解决的呢?你们使用的方法简单方便......
  • JAVA代码审计 SSRF篇
    一、巩固SSRFSSRF服务端请求伪造,Web应用程序往往会提供一些能够从远处获取图片或是文件的接口,在这些接口上用户使用指定的URL便能完成远程获取图片,下载文件等操作。......
  • 6.Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000079
    这个问题引起的原因是:服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存吧(测试环......
  • Java 中 Future 的 get 方法超时会怎样?
    一、背景很多Java工程师在准备面试时,会刷很多八股文,线程和线程池这一块通常会准备线程的状态、线程的创建方式,Executors里面的一些工厂方法和为什么不推荐使用这些工厂方......
  • Java 接口的所有子类都需要执行相同处理逻辑的推荐姿势
    一、背景在实际开发过程中,有些时候我们可能会遇到这样的场景:我们定义接口给上游使用,不同的业务类型定义不同的子类型,实现该接口的某个函数,但是这些子类型会有很多公共的逻辑......
  • Java实现记录对象修改前后的变化
    需求描述今天接到一个需求,修改数据时需要记录修改详情。详情包括,被修改的字段,修改前的值和修改后的值。解决思路分别比较修改前后两个Bean实例的所有成员变量,当值不一致时......
  • Java基本类型和包装类什么情况下判断相等(“==“或“equals“)?
    Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否......