如何使用Gson提取字段

时间:2014-08-13 16:57:57

标签: java json serialization gson

我正在尝试使用Gson从Json中提取字段:

  

{“attributes”:{“538”:{“id”:“538”,“code”:“sabor”,“label”:“Sabor”,“options”:[{“id”:“24 “,”“label”:“Baunilha”,“price”:“0”,“oldPrice”:“0”,“products”:[“1376”]},{“id”:“25”,“label”: “巧克力”,“价格”:“0”,“oldPrice”:“0”,“产品”:[“1377”]}]}}}

我需要的是选项内的标签字段(在这种情况下,Baunilha和巧克力)。

我尝试了以下课程:

  

公共类Customer实现Serializable {

@SerializedName("options")
private Produto options;

public Produto getOptions() {
    return options;
}

public void setEmail(Produto options) {
    this.options = options;
}

  

public class Produto实现了Serializable {

@SerializedName("label")
private String label;

public String getLabel() {
    return  label;
}

public void setLabel(String label) {
    this.label = label;
}

}

  

Customer cust = g.fromJson(ja,Customer.class);

但我一直得到空指针错误。

1 个答案:

答案 0 :(得分:3)

"选项" value不是由字符串组成的对象,"选项" value是一个对象数组。您需要在Customer中更改您的定义:

class CustomerWrapper {
    @SerializedName("attributes")
    private Map<String, Customer> attributes;
}

class Customer {
    @SerializedName("options")
    private List<Produto> options;
}