我需要将优步产品JSON响应从这里转换为Java。我使用Jackson来处理JSON。我的输入JSON看起来像:
{
"products": [
{
"capacity": 2,
"description": "Ride for less with uberPOOL",
"price_details": {},
"image": "http://d1a3f4spazzrp4.cloudfront.net/car.jpg",
"display_name": "POOL",
"product_id": "26546650-e557-4a7b-86e7-6a3942445247",
"shared": true,
},
{
"capacity": 4,
"description": "The low-cost Uber",
"price_details": {
"distance_unit": "mile",
"cost_per_minute": 0.26,
"service_fees": [
{
"fee": 1.0,
"name": "Safe Rides Fee"
}
],
"minimum": 5.0,
"cost_per_distance": 1.3,
"base": 2.2,
"cancellation_fee": 5.0,
"currency_code": "USD"
},
"cash_enabled": false,
"image": "http://d1a3f4spazzrp4.cloudfront.net/car.jpg",
"display_name": "uberX",
"product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",
"shared": false
}
]
}我的实体类看起来像:
public class Products {
@JsonProperty
private int capacity;
@JsonProperty
private String description;
@JsonProperty
private String price_details;
@JsonProperty
private String image;
@JsonProperty
private Boolean cash_enabled;
@JsonProperty
private Boolean shared;
@JsonProperty
private String short_description;
@JsonProperty
private String display_name;
//getter, setter methods
} 包装类如下所示:
public class ProductsModel{
private List <Products> product;
public List<Products> getProduct() {
return product;
}
public void setProduct(List<Products> product) {
this.product = product;
}
}现在,当我尝试将JSON映射到我的wapper类并尝试打印产品时。它给了“空”不知道为什么..。请帮忙指出原因。
private ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
productsModel = mapper.readValue(line1, ProductsModel.class);
response.getWriter().println("get products:" + productsModel.getProduct()); //<-- returns null - not sure why发布于 2016-09-04 03:52:31
使用下面的ProductsModel类可以很好地工作。
乘积实体:
public class Products {
@JsonProperty
private int capacity;
@JsonProperty
private String description;
@JsonProperty
private Map price_details;
@JsonProperty
private String image;
@JsonProperty
private Boolean cash_enabled;
@JsonProperty
private Boolean shared;
@JsonProperty
private String short_description;
@JsonProperty
private String display_name;
}ProductsModel包装器类:
public class ProductsModel {
private List<Products> products;
public List<Products> getProducts() {
return products;
}
public void setProducts(List<Products> products) {
this.products = products;
}
}在您的代码中有两个错误:
我刚刚在ProductsModel类中进行了更改,它运行得很好。
https://stackoverflow.com/questions/39313260
复制相似问题