我正在尝试获取用于反序列化的 Java 类: API Response 我正在使用http://www.jsonschema2pojo.org/获取我需要的java类。但是通过这个 json 响应我得到了这个:
public class CatalogueResponse {
@SerializedName("0")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._0 _0;
@SerializedName("1")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._1 _1;
@SerializedName("2")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._2 _2;
@SerializedName("3")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._3 _3;
@SerializedName("4")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._4 _4;
@SerializedName("5")
@Expose
private uex.asee.fjrm.multimediapp.api.pojos.catalogue._5 _5;
...
}
但是json的项目数量是变化的,所以我不能那样处理。 顺便说一句,我正在使用 gson 注释。 有什么想法吗?
最佳答案
为什么不尝试使用 Map 然后序列化它。我建议使用 TreeMap 并添加数字作为键和值作为 Catalog 对象。像这样的东西:
Map<Integer, Catalogue> map = new TreeMap<>();
map.put(0, catalogue0);
map.put(1, catalogue1);
...
// Now serialize the map.
这将生成您需要的 API 响应。
要使用 Gson 反序列化它,请尝试以下操作:
Type mapType = new TypeToken<Map<Integer, Catalogue>>(){}.getType();
Map<Integer, Catalogue> catalogueMap = (Map<Integer, Catalogue>) gson.fromJson(json, mapType);
关于java - 需要反序列化 json 格式的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721628/