最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決日期轉(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)文章

  • JavaWeb實現(xiàn)文件上傳與下載的方法

    JavaWeb實現(xiàn)文件上傳與下載的方法

    這篇文章主要介紹了JavaWeb實現(xiàn)文件上傳與下載的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java中的java.lang.reflect.Type簡介

    Java中的java.lang.reflect.Type簡介

    在 Java 中,java.lang.reflect.Type 是一個接口,代表所有類型的通用超類型,它包括原始類型、參數(shù)化類型、數(shù)組類型、類型變量和基本類型,本文給大家講解Java中的java.lang.reflect.Type是什么,需要的朋友可以參考下
    2024-06-06
  • java實現(xiàn)根據(jù)pdf模板生成文件并插入文字,選項,簽名和公章

    java實現(xiàn)根據(jù)pdf模板生成文件并插入文字,選項,簽名和公章

    這篇文章主要為大家詳細介紹了java如何實現(xiàn)根據(jù)pdf模板生成文件并插入文字,選項,簽名和公章,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • SpringBoot整合Dubbo+Zookeeper實現(xiàn)RPC調(diào)用

    SpringBoot整合Dubbo+Zookeeper實現(xiàn)RPC調(diào)用

    這篇文章主要給大家介紹了Spring Boot整合Dubbo+Zookeeper實現(xiàn)RPC調(diào)用的步驟詳解,文中有詳細的代碼示例,對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-07-07
  • 基于Mybatis映射的一點心得(分享)

    基于Mybatis映射的一點心得(分享)

    下面小編就為大家?guī)硪黄贛ybatis映射的一點心得(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • springboot整合sentinel接口熔斷的實現(xiàn)示例

    springboot整合sentinel接口熔斷的實現(xiàn)示例

    為了防止慢接口導(dǎo)致的服務(wù)阻塞,可以通過添加熔斷處理來避免應(yīng)用的大量工作線程陷入阻塞,保證其他接口的正常運行,本文介紹了如何使用Spring Boot與Sentinel進行接口熔斷的配置與實現(xiàn),感興趣的可以了解一下
    2024-09-09
  • Java的四種引用方式

    Java的四種引用方式

    這篇文章主要介紹了Java的四種引用方式,Java的引用方式主要包括強引用、軟引用、弱引用、虛引用;下面文章便來詳細介紹這四種引用方式,需要的朋友可以參考一下
    2021-10-10
  • 使用Maven將Java項目打包為Docker鏡像的實戰(zhàn)方法

    使用Maven將Java項目打包為Docker鏡像的實戰(zhàn)方法

    本文介紹了兩種使用Maven將Java項目打包為Docker鏡像的實戰(zhàn)方法: Google Jib插件方案:無需Dockerfile,直接通過Maven插件構(gòu)建鏡像,優(yōu)勢包括分層構(gòu)建、安全高效、鏡像體積小,特別適合SpringBoot項目,文章詳細展示了使用Maven構(gòu)建Java項目并生成Docker鏡像的完整流程
    2026-02-02
  • JDK1.8與JDK17多版本共存相互切換(windows、macOS、Linux、IDE)

    JDK1.8與JDK17多版本共存相互切換(windows、macOS、Linux、IDE)

    在電腦已經(jīng)安裝之前主流的jdk1.8后避免不了要安裝新的主流jdk17,本章主要目的是介紹不同項目和場景間切換JDK?1.8和JDK?17,提高開發(fā)效率并避免版本沖突(包括windows、macOS、Linux、IDE)
    2025-12-12
  • Java使用JDBC實現(xiàn)Oracle用戶認(rèn)證的方法詳解

    Java使用JDBC實現(xiàn)Oracle用戶認(rèn)證的方法詳解

    這篇文章主要介紹了Java使用JDBC實現(xiàn)Oracle用戶認(rèn)證的方法,結(jié)合實例形式分析了java使用jdbc實現(xiàn)數(shù)據(jù)庫連接、建表、添加用戶、用戶認(rèn)證等操作流程與相關(guān)注意事項,需要的朋友可以參考下
    2017-08-08

最新評論

三江| 泊头市| 石渠县| 建德市| 威远县| 印江| 隆德县| 德令哈市| 东丽区| 会宁县| 车致| 台东市| 类乌齐县| 杭锦后旗| 东城区| 吴堡县| 修武县| 宁都县| 长岭县| 哈巴河县| 潮州市| 连云港市| 宣武区| 巨野县| 金门县| 贺兰县| 建阳市| 越西县| 四子王旗| 开江县| 长治市| 广东省| 平顶山市| 河间市| 上蔡县| 大理市| 兴城市| 祁阳县| 鹤岗市| 灵璧县| 合水县|