用数组反序列化对象会在GSON中返回null,为什么?

问题描述

@H_502_0@我从服务器获得此结果:
{"product_option_values":[{"id":43},{"id":45}]}

@H_502_0@而且,我有这些类可以为下面的类解析上面的字符串

public class MyClass {

    @Key("product_option_values")
    private List<ProductOptionValueResult> values;

    public List<ProductOptionValueResult> getValues() {
        return values;
    }

    public void setValues(List<ProductOptionValueResult> values) {
        this.values = values;
    }
}

public class ProductOptionValueResult {

    private Integer id;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
}
@H_502_0@我正在尝试将上面的字符串转换为MyClass的实例,如下所示:

MyClass myclass = gson.fromJson(stringAbove,MyClass.class);
@H_502_0@但是我在对象的values属性中得到的是null,为什么?

解决方法

代替此注释:

@Key("product_option_values")

您可以使用这个:

@SerializedName("product_option_values")

这来自com.google.gson.annotations.SerializedName