使用杰克逊从泽西岛使用readEntity()将json字符串解析为对象通常可以正常工作,但是现在我使用的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>>() {
});
}
我从API获取的json
{
"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由不同的Restaurants组成,但它们不是列表中的beeing实体,而是一个名称分别为key_0,key_1等的单独对象。如何设计我的模型,使readEntity()方法可用于此json,而模型中没有“ key_0”等作为属性?