Синтаксический анализ строки json для объекта с использованием readEntity () из jersey с использованием jackson обычно работает нормально, но сейчас я использую API, который возвращает нечетную структуру json, с которой я не знаю, как обращаться.
Моя модель класса Restaurant.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Restaurant {
@JsonProperty("real_name")
private String name;
@JsonProperty("phone")
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
И мой метод Client, когда я хочу вернуть список ресторанов.
public List<Restaurant> getRestaurantsByZIP(String zip) {
Response response = lunchgateClient.getRestaurants(zip, null, null, null);
return response.readEntity(new GenericType<List<Restaurant>>() {
});
}
JSON, который я получаю от API
{
"restaurants": {
"key_0": {
"id": "1172",
"real_name": "Restaurant 1",
"phone": "123456789",
"email": "someEmail@email.com"
},
"key_1": {
"id": "1173",
"real_name": "Restaurant 2",
"phone": "123456789",
"email": "someEmail@email.com"
}
},
"tags": "asian, eurpoean, cafe"
}
Как видите, jsons состоит из разных ресторанов, но вместо сущностей ресторанов, находящихся в списке, все они являются отдельным объектом с именами key_0, key_1 и так далее. Как я могу спроектировать мою модель, чтобы метод readEntity () работал для этого json, не имея «key_0» и т. Д. В моей модели в качестве атрибута?