java - json 对象中的类实例字段返回 null

标签 java json

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

我的类(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/

相关文章:

java - 有哪些工具可以让我从 Java 转储和重新创建数据库?

java - Android在循环中获取页面源

javascript - 删除数据数组JS

javascript - 未捕获的语法错误 : Unexpected token < ajax call jsonp

java - foreach 不适用于 java.lang.object 和尝试遍历 java 中数组列表的数组列表时出现编译错误

java - Cassandra SSTableLoader : failed to list files in <directory_path>

ios - 从IOS中的json响应中提取错误代码

json - 参数类型 'x' 无法分配给参数类型 'x'

java - SEAM FacesMessage 未显示

json - 验证失败 : 1: no requests added in bulk indexing