Преобразование запроса API REST из JSON в календарь - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время у меня есть запрос от конечной точки API, который приходит в следующем формате.

 {"amount":"122.96","timestamp":"2019-05-28T12:19:54.702Z"}

Я хочу попробовать преобразовать метку времени в объект календаря в указанном ниже ресурсе.

 public class resource {

 @JsonProperty
 private BigDecimal amount;

 @JsonProperty
 private Calendar timeStamp;

 }

Однако конечная точка не может отобразиться из-за следующего:

 java.lang.Error: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.api.Resource]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.api.Resource` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)at [Source: (PushbackInputStream); line: 1, column: 2]

Я попытался добавить @JsonFormat, а также @JsonDeserializer, используя специальный десериализатор, прикрепленный ниже

CustomDeserializer.class

public class CalendarDeserializer extends StdDeserializer<Calendar> {

protected CalendarDeserializer() {
    super(Calendar.class);
}

public Calendar deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    c.setTimeInMillis(jp.readValueAs(Long.class));
    return c;
}

}

Я ожидаю, что смогу правильно отобразить метку времени на объект календаря

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