【发布时间】:2015-12-15 14:45:49
【问题描述】:
我想做一些响应 POJO 类,我将从我的网络服务器收到。
我的网络服务器将始终以这种结构返回一个 json:
{
'data':Object or array or null,
'status':Integer,
'message':String or null
}
这是基本响应:
public class BaseResponse {
private Object data;
private int status;
private String message;
public Object getData() { return this.data; }
public int getStatus() { return this.status; }
public String getMessage() { return this.message; }
}
然后我有一个“真正的”响应类:
public class LoginResponse extends BaseResponse {
private UserData data;
@Override
public UserData getData() { return data; }
}
UserData 是另一个类,看起来与这些完全相同,但具有不同的变量名称(id 和名称)。
我尝试像这样解析响应:
try {
LoginResponse json = gson.fromJson(jsonString, LoginResponse.class);
Log.i(PF.TAG, "ID: " + json.getData().getName());
}
但它会在 fromJson() 上抛出异常:
LoginResponse 声明了多个名为 data 的 JSON 字段
我怎样才能解决这个问题,并且在 BaseResponse 中仍然有数据变量?
【问题讨论】: