Можно ли сгруппировать поля JSON в одно свойство, используя Джексона? - PullRequest
0 голосов
/ 23 ноября 2018

Мне интересно, есть ли способ десериализации нескольких полей JSON только для одного свойства Java.Например, с учетом этого JSON:

{
  "id" : "1",
  "name" : "Bartolo",
  "address" : "whatever",
  "phone" : "787312212"
}

десериализовать его в этот класс:

public class Person {

    public String id;
    public String name:

    @JsonProperty(names = {"address", "phone"}) //something like this
    public String moreInfo;

}

, поэтому moreInfo равно "whatever, 787312212" или чему-то подобному.

Этовозможно без использования специального десериализатора ?

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете использовать аннотацию @JsonCreator следующим образом:

String json = {"id" : "1",  "name" : "Bartolo", "address" : "whatever", "phone" : "787312212" }

ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json , Person.class);

и в конструкторе вашего класса Person добавить это

@JsonCreator
public Person(@JsonProperty("address") String address, @JsonProperty("phone") String phone) {
    this.moreInfo = address + "," phone;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...