【发布时间】:2014-11-11 23:00:09
【问题描述】:
我正在使用 Retrofit 和 Gson 来查询 API,但是我从未遇到过这样的 JSON 响应。
回应:
{
Response: {
"Black":[
{"id":"123","code":"RX766"},
{"id":"324","code":"RT344"}],
"Green":[
{"id":"3532","code":"RT983"},
{"id":"242","code":"RL982"}],
"Blue":[
{"id":"453","code":"RY676"},
{"id":"134","code":"R67HJH"}]
}
}
问题是列表元素 id 例如“黑色”是动态的,所以我不知道它们会是什么。
到目前为止,我已经为内部类型创建了一个类;
class Type {
@SerializedName("id") private String id;
@SerializedName("code") private String code;
}
有没有可能有以下?
class Response {
@SerializedName("response")
List<Type> types;
}
然后将列表ID移动到类型中,这样Type类就变成了;
class Type {
@SerializedName("id") private String id;
@SerializedName("code") private String code;
@SerializedName("$") private String type; //not sure how this would be populated
}
如果不是,那么如何仅使用 Gson 属性对其进行解析?
好的,我刚刚看到了这个问题; How to parse dynamic JSON fields with GSON?
看起来不错,是否可以用响应对象包装通用映射?
【问题讨论】: