使用Gson-Android的java动态Json解析
我有一个json,如下所述
{
"product": [
{
"classification": "abc",
"ABC": [
{
"classification": "abc",
"name": "abc new product one",
"price": "10775.0000",
},
{
"classification": "abc",
"name": "abc new product two",
"price": "12725.0000",
}
]
},
{
"classification": "def",
"DEF": [
{
"classification": "def",
"name": "def product one",
"price": "728.0000",
},
{
"classification": "def",
"name": "def product two",
"price": "1263.0000",
},
]
}
],
"status": "OK",
"message": "success"
}
在上面的json中,大写字母的键是动态的
(Ex: ABC, DEF)
。我创建了pojo类,如下所示:
public class ProductResponse{
private String status;
private String message;
private List<Products>;
Getters And Setters
}
public class Products{
private String classification;
}
我正在努力写产品pojo类的下一部分,因为关键是大写字母
(Ex: ABC, DEF)
它们是动态的。我使用volley库获取数据,并使用gson库进行解析。请帮帮我
# 1 楼答案
您不能有动态名称。原因是json中的名称需要链接到对象中的属性。 我建议您在json和模型中添加一个“classification”属性,如下所示:
您的products类现在有一个与分类关联的结果列表
希望有帮助
# 2 楼答案
你的问题是动态键,我发现它不是动态的。如我所见,对于
product
数组中的每个元素,classification
键的值是下一个键。唯一的区别是它们是大写的如中所示,这里是
"classification": "def"
,下一个键是DEF
。这里我要做的是获取classification
键的值,将字符串中的所有字母大写,然后将其用作key