Приложение My Spring Boot вызывает API REST и получает JSON с различным числом объектов.Например,
{
"content": {
"guest_1": {
"name": {
"firstName": "a",
"lastName": "b"
},
"vip": false
},
"guest_2": {
"name": {
"firstName": "c",
"lastName": "d"
},
"vip": false
},
...more guests omitted...
}
}
Может быть от одного до многих гостей, и я не знаю их количество заранее.Как вы можете видеть, они не находятся в массиве, а являются объектами.
Я бы хотел избежать десериализации в класс, подобный
public class Content {
@JsonProperty("guest_1")
private Guest guest1;
@JsonProperty("guest_2")
private Guest guest2;
// More Guests here each having their own field
}
Что бы я хотелиспользуется
public class Content {
private List<Guest> guests;
}
Аннотация @JsonAnySetter
, о которой я читал в https://www.baeldung.com/jackson-annotations, выглядит многообещающе, но я не могу заставить ее работать.
3.2.Преобразование в объект в https://www.baeldung.com/jackson-json-node-tree-model выглядит также хорошо, но это тоже не сработало.
Я не уверен, смогу ли я заставить Джексона сделать это декларативным способом или яследует написать кастом JsonDeserializer
.Не могли бы вы помочь мне?