Десериализовать только один или два атрибута из Json в Spring Boot - PullRequest
0 голосов
/ 22 сентября 2019

Так что в этом случае я хочу использовать сторонний API для сравнения столиц со странами, мне не нужны никакие другие атрибуты из Json, кроме этих двух, однако используемый мной API имеет много дополнительных атрибутов

Какой самый простой способ десериализации Json в класс только с теми двумя атрибутами, которые я хочу?

Я пробовал это, но, конечно, это не сработало:

        Country country = restTemplate.getForObject( "https://restcountries.eu/rest/v2/capital/"+learning.getCapital(), Country.class);

Я понимаю, что это не работает, потому что он пытается сопоставить атрибуты Json с классом, который, конечно, не имеет оставшихся атрибутов (он просто имеет два строковых атрибута, называемых Name и Capital).

Ответы [ 3 ]

1 голос
/ 22 сентября 2019

Вы можете игнорировать неизвестные свойства в сопоставителе объектов для этого шаблона отдыха:

 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
1 голос
/ 22 сентября 2019

, если вы хотите эту функцию глобально, вы можете установить в вашем application.properties

spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=false
1 голос
/ 22 сентября 2019

Аннотируйте класс с помощью @ JsonIgnoreProperties :

@JsonIgnoreProperties(ignoreUnknown = true)
public class Country {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...