我正在尝试从JSON响应中获取类实例。我的json响应如下:
我的课程看起来像这样:
private String brandName;
@OneToMany(targetEntity=Store.class)
private List<Store> stores;
private String currency;
private String title;
public Product (){}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
@OneToMany(targetEntity=Store.class)
public List<Store> getStores() {
return stores;
}
@OneToMany(targetEntity=Store.class)
public void setStores(List<Store> stores) {
this.stores = stores;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
所以我正在尝试使用google Gson api从json创建类:
private Gson gson = new Gson();
...
product = this.gson.fromJson(this.http.get(url), Product.class);
但是在我从gson api获得一个类之后,我发现我的所有类字段都是null。我也试图将@JsonProperty
添加到我的实体字段,但它不起作用。并尝试使用ObjectMapper
获取实例,但结果为null。我做错了什么?
答案 0 :(得分:1)
虽然这不是你班级的有效实例。这是一个HTTP响应。 如果你看到你的项目在值“products”之后开始,顺便说一下它是一个数组,即使该响应只返回一个。 所以,你只需要获得该项目的那一部分。
因此尝试使用以下命令创建一个完整的JSON表示:
JSONObject myObject = new JSONObject(result);
然后只得到... getResult()我想。最后你将它传递给Gson方法