亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決日期轉(zhuǎn)化Json異常- Date JSON parse error

 更新時間:2023年06月19日 08:48:31   作者:上官天夜  
這篇文章主要介紹了解決日期轉(zhuǎn)化Json異常- Date JSON parse error問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

日期轉(zhuǎn)化Json異常- Date JSON parse error

1、做JUnit功能測試的時候

拋出如下異常

org.springframework.web.client.RestClientException: Error while extracting response for type 
[class com.imooc.entity.Product] and content type [application/json;charset=UTF-8];
 nested exception is org.springframework.http.converter.HttpMessageNotReadableException: 
 JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2018-10-19 21:33:16": 
 not a valid representation (error: Failed to parse Date value '2018-10-19 21:33:16': 
 Cannot parse date "2018-10-19 21:33:16": 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 "2018-10-19 21:33:16": not a valid representation (error: Failed to parse Date value '2018-10-19 21:33:16': Cannot parse date "2018-10-19 21:33:16": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
 at [Source: (PushbackInputStream); line: 1, column: 141] (through reference chain: com.imooc.entity.Product["createAt"])
    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:115)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:689)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:644)
    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:399)
    at com.imooc.util.RestUtil.postJSON(RestUtil.java:31)
    at com.imooc.controller.ProductControllerTest.lambda$0(ProductControllerTest.java:59)
    at java.util.ArrayList.forEach(Unknown Source)
    at com.imooc.controller.ProductControllerTest.testAddProduct(ProductControllerTest.java:58)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
    at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2018-10-19 21:33:16": not a valid representation (error: Failed to parse Date value '2018-10-19 21:33:16': Cannot parse date "2018-10-19 21:33:16": 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 "2018-10-19 21:33:16": not a valid representation (error: Failed to parse Date value '2018-10-19 21:33:16': Cannot parse date "2018-10-19 21:33:16": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
 at [Source: (PushbackInputStream); line: 1, column: 141] (through reference chain: com.imooc.entity.Product["createAt"])
    at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:243)
    at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:225)
    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:100)
    ... 39 more
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2018-10-19 21:33:16": not a valid representation (error: Failed to parse Date value '2018-10-19 21:33:16': Cannot parse date "2018-10-19 21:33:16": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
 at [Source: (PushbackInputStream); line: 1, column: 141] (through reference chain: com.imooc.entity.Product["createAt"])
    at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
    at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1548)
    at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:910)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:524)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:467)
    at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:195)
    at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:285)
    at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:268)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:369)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3084)
    at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:237)
    ... 41 more 

2、原因

主要問題就是實體類的Date轉(zhuǎn)化Json過程出現(xiàn)錯誤,

請求數(shù)據(jù)格式為:

'yyyy-MM-dd HH:mm:ss',但是在接收到數(shù)據(jù)的時候,需要通過jackson把數(shù)據(jù)轉(zhuǎn)化成userDto對象。

jackson轉(zhuǎn)化的時候,默認(rèn)的時間格式是 'yyyy-MM-dd'T'HH:mm:ss.SSS’,所以就會出現(xiàn)上面的異常。

3、解決方案

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Column(name="update_at",columnDefinition="datetime comment '更新時間'")
	private Date updateAt;

解決JSON parse error: Cannot deserialize value of type `java.util.Date` from String

如題,這個錯誤是因為前端傳的日期到后端之后不能解析

解決辦法

在你的實體類中的 Date類型的變量上面加兩個自動解析的注解,比如:

在這里插入圖片描述

由此傳時間變量的時候前后端同事就可以開心的玩耍了~ 但是這是Date這個老類型,那JDK8之后的新日期類型LocalDate和新時間類型 LocalTime,會是什么效果?不知道,沒試~

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例

    java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例

    這篇文章主要介紹了java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例,需要的朋友可以參考下
    2014-05-05
  • 關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列

    關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列

    這篇文章主要介紹了關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列,死信隊列實際上就是一個普通的隊列,只是這個隊列跟死信交換機進(jìn)行了綁定,用來存放死信而已,需要的朋友可以參考下
    2023-05-05
  • maven依賴jar包時版本沖突的解決方案

    maven依賴jar包時版本沖突的解決方案

    這篇文章介紹了處理jar包依賴沖突的幾種方法,包括:優(yōu)先原則、路徑近者優(yōu)先、排除原則、版本鎖定原則、查看間接依賴、排包和處理jar包依賴沖突的總結(jié)
    2025-01-01
  • Java實現(xiàn)調(diào)用外部程序的示例代碼

    Java實現(xiàn)調(diào)用外部程序的示例代碼

    本文主要介紹了Java實現(xiàn)調(diào)用外部程序的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java制作簡單驗證碼功能

    java制作簡單驗證碼功能

    這篇文章主要為大家詳細(xì)介紹了java制作簡單驗證碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Springboot自動配置與@Configuration配置類詳解

    Springboot自動配置與@Configuration配置類詳解

    這篇文章主要介紹了SpringBoot中的@Configuration與自動配置,在進(jìn)行項目編寫前,我們還需要知道一個東西,就是SpringBoot對我們的SpringMVC還做了哪些配置,包括如何擴(kuò)展,如何定制,只有把這些都搞清楚了,我們在之后使用才會更加得心應(yīng)手
    2022-07-07
  • SpringBoot處理大量請求數(shù)據(jù)的傳輸問題的方法小結(jié)

    SpringBoot處理大量請求數(shù)據(jù)的傳輸問題的方法小結(jié)

    在Spring?Boot項目常常需要中處理大量請求數(shù)據(jù)的傳輸問題,這篇文章主要為大家整理了一些常用的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • SpringBoot微信消息接口配置詳解

    SpringBoot微信消息接口配置詳解

    這篇文章主要介紹了SpringBoot 微信消息接口配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-06-06
  • JavaWeb中的文件的上傳和下載

    JavaWeb中的文件的上傳和下載

    JavaWeb 文件的上傳和下載是指在Web應(yīng)用中實現(xiàn)用戶上傳文件到服務(wù)器和從服務(wù)器下載文件的功能,通過JavaWeb技術(shù),可以方便地實現(xiàn)文件的上傳和下載操作,提供更好的用戶體驗和數(shù)據(jù)交互,需要的朋友可以參考下
    2023-10-10
  • SpringBoot使用@Async注解處理異步事件的方法

    SpringBoot使用@Async注解處理異步事件的方法

    在現(xiàn)代應(yīng)用程序中,異步編程已經(jīng)成為了必備的技能,異步編程使得應(yīng)用程序可以同時處理多個請求,從而提高了應(yīng)用程序的吞吐量和響應(yīng)速度,在SpringBoot 中,我們可以使用 @Async 注解來實現(xiàn)異步編程,本文將介紹 @Async 注解的使用方法和注意事項
    2023-09-09

最新評論