【发布时间】:2017-04-06 15:22:59
【问题描述】:
解析JSON数组时如何设置超类“LookUp”属性id、name 国家/地区:
[ {"ID":5, "CountryNameEN":"UK" }, {"ID":6, "CountryNameEN":"USA" } ]
例如,当我使用 Retrofit 2 调用 get_lookups_countries() API 并使用谷歌 Gson 库解析响应时,我想将超类实例成员 id 和名称设置为派生类“Country”的相同值
@GET(Constants.LookUps.GET_COUNTRIES) Call<List<Country>> get_lookups_countries();
Gson gson = new GsonBuilder()
.setLenient()
.registerTypeAdapter(LookUp.class,new LookupsDeserializer())
.create();
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okHttpClient.build())
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
return retrofit.create(APIEndpointVatTax.class);
public class LookUp {
int id;
String name;
}
public class Country extends LookUp {
@SerializedName("ID")
@Expose
private Integer iD;
@SerializedName("CountryNameEN")
@Expose
private String countryNameEN;
}
【问题讨论】:
-
Lookup id 和 Country iD 不同吗?
-
不,相同的值
-
那为什么需要超类呢?
标签: java android gson retrofit