我正在尝试从 JSON 响应获取类实例。我的 json 响应如下所示:
我的类(class)看起来像这样:
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 获取一个类后,我发现我的所有类字段都是空的。我还尝试将 @JsonProperty
添加到我的实体字段,但它不起作用。还尝试使用ObjectMapper
获取实例,但结果为空。我做错了什么?
最佳答案
据我所知,这对于您的类(class)来说不是一个有效的实例。这是一个 HTTP 响应。 如果您看到您的项目在值“products”之后开始,顺便说一句它是一个数组,即使该响应也只返回一个。 因此,您只需要获取该项目的该部分。
因此尝试使用以下内容创建完整的 JSON 表示:
JSONObject myObject = new JSONObject(result);
然后只得到... getResult() 我猜。最后将其传递给 Gson 方法
关于java - json 对象中的类实例字段返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279031/