Я новичок в весенней загрузке и пытаюсь использовать Enum в качестве параметра запроса на отдых.
Это мой класс Enum:
public enum Month {
JANUARY (1, "january"), FEBRUARY(2,"february"), MARCH(3,"march"),
APRIL(4,"april"), MAY(5,"may"), JUNE(6,"june"), JULY(7,"july"),
AUGUST(8, "august"), SEPTEMBER(9,"september"), OCTOBER(10,"october"),
NOVEMBER(11,"november"), DECEMBER(12,"december");
private String desc;
private int id;
//Constructure
//Getters and Setters
}
В моем классе контроллера я использую этот метод:
@RequestMapping(value = "/testmonth", method = RequestMethod.POST)
public Month TestForMonth(@RequestBody Month inputPayload) {
Month response = inputPayload;
response.setId(inputPayload.getId());
response.setDesc(inputPayload.getDesc());
System.out.println("As String: " + inputPayload.getDesc() + ". As int " + inputPayload.getId() + ".");
return response;
}
Это мой JSON:
{
Month: "JANUARY"
}
Но это не работает. Я получаю эту ошибку:
.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `com.example.simplerestapis.models.Month` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.example.simplerestapis.models.Month` out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 1]]
Пожалуйста, также добавьте полезную нагрузку JSON вашего запроса.
@Arnaud, спасибо, что сообщили мне.
попробуй только "ЯНВАРЬ" без фигурных скобок
@merdle С удовольствием :) Я разместил это как ответ, чтобы вы могли проголосовать за него.




Ваше тело объявлено как простое перечисление, а не объект. Поэтому вместо публикации объекта JSON с фигурными скобками попробуйте опубликовать только значение, например:
"JANUARY"
Это похоже на искаженное тело запроса. Я предполагаю, что ваш запрос не является json. Попробуйте опубликовать что-то вроде "ЯНВАРЬ" (с кавычками).