【发布时间】:2018-07-09 08:39:20
【问题描述】:
我有以下通用类,我正在尝试使用 Gson 库进行序列化。
public class TRequest<T> implements RealmModel {
private RealmList<T> requestList;
public RealmList<T> getRequestList() {
return requestList;
}
public void setRequestList(RealmList<T> requestList) {
this.requestList = requestList;
}
}
编写了以下代码来序列化数据
//crate fitness object
Fitness fitness = new Fitness();
fitness.set_id("100");
fitness.setIntensity("2300");
//create realm list
RealmList<Fitness> fitnessRealmList = new RealmList<Fitness>();
fitnessRealmList.add(fitness);
//create tRequest object
TRequest<Fitness> tRequest = new TRequest<Fitness>();
tRequest.setRequestList(fitnessRealmList);
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
//serialize it
String stringData = gson.toJson(tRequest);
结果我得到以下输出
{"requestList":[{"_id":"100","intensity":"2300"}]}
由于我的课程是通用的,我想将属性值动态从“requestList”更改为“fitness”。同样,如果我正在序列化例程对象,那么它应该将“requestList”替换为“例程”。
预期输出是
{"fitness":[{"_id":"100","intensity":"2300"}]}
我尝试了以下类型的令牌,但它不起作用
Type type = new TypeToken<Fitness>(){}.getType();
String stringData = gson.toJson(tRequest,type);
【问题讨论】: