Jackson InvalidFormatException: невозможно десериализовать значение типа `java.util.UUID` из String - PullRequest
0 голосов
/ 22 января 2019

Я использую Spring boot с Rest Controller.У меня есть @PostMapping с Requestbody, имеющий объект с идентификатором типа UUID.Когда я пытаюсь проверить свой почтовый запрос от Почтальона, я получаю следующую ошибку:

"Ошибка синтаксического анализа JSON: Невозможно десериализовать значение типа java.util.UUID из строки \" 4be4bd08cfdf407484f6a04131790949 \ ": UUID должен быть представлен какстандартное представление с 36 символами; вложенное исключение - com.fasterxml.jackson.databind.exc.InvalidFormatException: невозможно десериализовать значение типа java.util.UUID из String \ "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 Ответ

0 голосов
/ 22 января 2019

Не берите в голову, я искал вокруг и смог решить проблему. Ниже приведено решение.

Таким образом, в основном решение заключалось в удалении идентификатора из JSON, который я использовал для тела запроса. Json, который я использовал ранее, имел dstId в качестве первого ключа, удаление его решило мою ошибку.

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

Также я понял, что основной причиной было то, что данные, которые я использовал выше, не являются действительными UUID. Использование действительного UUID на своем месте сработало, например "dstId": "110841e3-e6fb-4191-8fd8-5674a5107c33

Пост, который помог мне выяснить Ошибка синтаксического анализа Spring Boot JSON: Невозможно десериализовать ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...