我想使用 Gson 。
创建一个通用解析器我该怎么办? (对于以下json 属性)
JSON:
{
"sku":{
"id":"121221",
"sequence":0,
"ean":"1121212121121",
"attributes":{
"clothes_size":"S",
"color":"black"
}
}
}
与
类别:
public class Attributes {
public String label;
public String value;
}
答案 0 :(得分:2)
如果您只需要映射属性,请使用通用Map作为属性:
public SKU {
private String id;
private Long sequence;
private String ean
private Map<String, String> attributes;
}
答案 1 :(得分:1)
第一步:您必须为该JSON
制作模态类,并按如下方式命名:
<强> SkuMain.java 强>
public class SkuMain{
Sku sku;
public Sku getSku{
return sku;
}
}
<强> Sku.java 强>
public class Sku {
String id;
String sequence;
String ean;
Map<String, String> attributes;
public attributes getAttributes{
return attributes;
}
}
第二步:使用Gson进行解析,如下所示:
SkuMain objSkuMain = new Gson(). fromJson(yourJsonString, SkuMain.class);
Sku objSku = objSkuMain.getSku();
String dynamicAttributes = new Gson.toJson(objSku.getAttributes());
Type mapType = new TypeToken<Map<String, String> >() {}.getType(); // define generic type
Map<Integer, Result> mapAttributes= gson.fromJson(new InputStreamReader(dynamicAttributes), mapType);
对于Sku
类,您必须制作getter setter方法,这些方法也会为您提供属性字段。