【问题标题】:Jackson InvalidFormatException: Cannot deserialize value of type `java.util.UUID` from StringJackson InvalidFormatException:无法从字符串反序列化“java.util.UUID”类型的值
【发布时间】:2019-06-16 06:46:58
【问题描述】:

我正在使用带有 Rest Controller 的 Spring Boot。我有一个@PostMapping 和一个@RequestBody,其对象的ID 类型为UUID。当我尝试测试来自 Postman 的发布请求时,我收到以下错误。

JSON 解析错误:

无法从字符串“4be4bd08cfdf407484f6a04131790949”反序列化 java.util.UUID 类型的值:UUID 必须用标准的 36 字符表示;嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“4be4bd08cfdf407484f6a04131790949”反序列化类型为 java.util.UUID 的值:UUID 必须由标准的 36 字符表示表示

我在一些帖子中读到了有关 invalidFormatException 但需要编写某种适配器的不同数据类型的帖子。如何为 UUID 解决这个问题?提前感谢您的意见。

@PostMapping(value = "/save_order")
@ResponseStatus(HttpStatus.CREATED)
public void postOrder(@RequestBody Order order) {
...

public class Order {
@Id
private UUID dstId;
....

【问题讨论】:

    标签: jackson uuid spring-restcontroller


    【解决方案1】:

    没关系,我四处搜索并能够解决问题。下面是解决方案。

    所以基本上解决方案是从我用于请求正文的 JSON 中删除 ID。我之前使用的 Json 将 dstId 作为第一个键,删除它解决了我的错误。

    {
     "dstId":"4be4bd08cfdf407484f6a04131790949",
      ...
    }
    

    我也意识到根本原因是我上面使用的数据不是有效的 UUID。例如,在它的位置使用有效的 UUID "dstId": "110841e3-e6fb-4191-8fd8-5674a5107c33

    帮助我弄清楚Spring Boot JSON parse error: Cannot deserialize error的帖子

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 2019-08-09
      • 2017-03-24
      • 2019-11-24
      • 1970-01-01
      • 2023-04-11
      • 2020-07-26
      • 2020-11-16
      • 2020-05-20
      相关资源
      最近更新 更多