Am将Spring Boot与Rest Controller一起使用。我有一个@PostMapping,其中的Requestbody具有ID为UUID类型的对象。当我尝试测试来自邮递员的发帖请求时,出现以下错误。
“ 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;
....
答案 0 :(得分:1)
没关系,我四处搜寻并能够解决问题。下面是解决方案。
因此,基本上,解决方案是从我用于请求正文的JSON中删除ID。我以前使用的Json将dstId作为第一个键,将其删除解决了我的错误。
{
"dstId":"4be4bd08cfdf407484f6a04131790949",
...
}
我还意识到根本原因是我上面使用的数据不是有效的UUID。例如,在有效的地方使用有效的UUID “ dstId”:“ 110841e3-e6fb-4191-8fd8-5674a5107c33
该帖子帮助我弄清楚了Spring Boot JSON parse error: Cannot deserialize error