改进JSON响应:
{
"data": [{
"id": 1224410,
"amount": "900200.00",
"meta": {
"referenceId": "referenceId","time": "2017-11-01T15:42:26Z","type": "send"
}
}],
"version": "v2"
}
这些是模型结构:
public class MyOject {
@SerializedName("id")
private int mId;
@SerializedName("amount")
private double mAmount;
@SerializedName("meta")
private JSONObject mMeta;
}
我总是在null
变量
mMeta
更新代码 class Wrapper用于解析来自JSONObject的响应:
public class ResponseWrapper<DataType> {
@SerializedName("data")
private DataType mData;
@SerializedName("version")
private String mVersion;
}
这是回调。我用它来指定要接收的数据类型。
public class CallbackWithData<T> implements Callback<ResponseWrapper<T>> {
@Override
public final void success(ResponseWrapper<T> data, Response response) {
this.success(data.getData(), data.getVersion());
}
public abstract void success(T data, String version);
}
这是我使用的API,它定义了所需的对象。
@GET("/transaction")
void listTransactions(@Header(Constants.Header.LOGIN_SECRET) String loginSecret, CallbackWithData<List<MyObject>> callback);
答案 0 :(得分:4)
使用HashMap而不是JSONObject:
@SerializedName("meta")
private HashMap mMeta;