当前位置: 首页 > 知识库问答 >
问题:

jackson InvalidFormatException:无法从字符串反序列化`java.util.uuid`类型的值

慕高格
2023-03-14

我使用的是带有Rest控制器的spring boot。我有一个@PostMapping,Requestbody的对象id类型为UUID。当我试图测试邮递员的邮件请求时,我得到以下错误。

“JSON分析错误:无法从字符串中反序列化java.util.UUID类型的值\”4BE4BD08CFDF407484F6A04131790949\“:UUID必须用标准36字符表示形式表示;嵌套异常为com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串中反序列化java.util.UUID类型的值\”4BE4BD08CFDF407484F6A04131790949\“:UUID必须用标准36字符表示形式表示

我在一篇文章中读到关于invalidFormatException的文章,但是它使用了一种不同的数据类型,需要编写某种适配器。如何解决UUID的问题?谢谢你的投入。

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

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

共有1个答案

邵昆琦
2023-03-14

不要紧,我四处寻找,终于解决了这个问题。下面是解决方案

因此,解决方案基本上是从用于请求体的JSON中删除ID。我前面使用的Json将dstId作为第一个键,删除它就解决了我的错误。

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

另外,我意识到根本原因是我上面使用的数据不是有效的UUID。在其位置使用有效的UUID起作用,例如“dstid”:“110841E3-E6FB-4191-8FD8-5674A5107C33

这篇文章帮助我解决了spring boot JSON解析错误:无法反序列化错误

 类似资料:
  • 使用Spring1.5.8释放Jackson mapper,给出以下异常。 在[源:未知;行:-1,列:-1](通过引用链:com.copart.conversationapi.CallDisposition.model.vo.CallLogEntity[“CallEndTime”]) Callentity.java java pom.xml

  • 由于以下异常,我无法反序列化Java-8-locatedate JSON分析错误:无法从字符串“15/09/1978”反序列化< code>java.time.LocalDate类型的值:无法反序列化Java . time . local date(Java . time . format。无法在索引0处分析DateTimeParseException)文本“15/09/1978”; 包含Date

  • 我有一门课是这样的: 但是当我试图序列化它时,我收到一个错误,上面写着“试图序列化java.lang.class:java.lang.字符串。忘记注册一个类型适配器了吗?”。所以我创建了这个适配器: } 并登记如下: 但我还是犯了同样的错误<我做错了什么 适配器的实现看起来正常吗?

  • 问题内容: 在这一点上,这已经是一个老问题了,我可能已经阅读了有关SO的所有相关主题。 但是要点。我需要一些建议或更正吗? 出于某种原因,我们有两种可生成的Jsons: 和 对象和数组。还有其他参数,但在这里无关紧要。每个请求的“ id”都不同。有时是userId,PortfolioId等。因此我得到“ id”并将其传递给相关的var。 很长一段时间我一直在处理第一种情况。并这样创建POJO: 数

  • 问题内容: 我有一个使用以下实现的基于json的REST Web服务:使用Jackson的Jetty,Jersey,Jersey-JSON。 我的方法之一收到一个Person实例,该实例的字段类型为。即: 如果我使用名称数组来调用它,一切正常!例如: 但是,如果该人只有一个名字,我的客户会创建一个值元素,例如: 当我尝试使用单个值调用服务时,出现异常: 题: 我应该如何创建/配置Web服务,以便在

  • 问题内容: 使用包中的类时遇到了json解析问题,而我得到的错误是: 发生此问题的Web应用程序是使用AngularJS前端的Spring MVC应用程序,但是我可以使用更小的所有Java程序来复制该问题。这是我的豆子: Shipment.java Activity.java ActivityLocation.java Address.java 这是我可以正确映射json的代码: 调整中的数据时,