来自json对象的类实例字段返回null

时间:2017-09-18 12:14:18

标签: java json

我正在尝试从JSON响应中获取类实例。我的json响应如下:enter image description here

我的课程看起来像这样:

    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。我做错了什么?

1 个答案:

答案 0 :(得分:1)

虽然这不是你班级的有效实例。这是一个HTTP响应。 如果你看到你的项目在值“products”之后开始,顺便说一下它是一个数组,即使该响应只返回一个。 所以,你只需要获得该项目的那一部分。

因此尝试使用以下命令创建一个完整的JSON表示:

JSONObject myObject = new JSONObject(result);

然后只得到... getResult()我想。最后你将它传递给Gson方法