我正在尝试使用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);
但我一直得到空指针错误。
答案 0 :(得分:3)
"选项" value不是由字符串组成的对象,"选项" value是一个对象数组。您需要在Customer中更改您的定义:
class CustomerWrapper {
@SerializedName("attributes")
private Map<String, Customer> attributes;
}
class Customer {
@SerializedName("options")
private List<Produto> options;
}