【发布时间】:2017-07-04 06:32:09
【问题描述】:
我正在尝试将 JSON 对象(来自 API)反序列化为它们各自的 Java 对象。我正在使用 gson 库(适用于 Android)。问题是我已经尝试了几天并测试了许多选项,但都没有运气,所以我非常感谢对此提供一点帮助。
*检索到的 JSON。我从 API 收到的所有 JSON 都遵循以下结构:
{
"status_code": 200,
"status_message": "Here the status message",
"result": {
"success": true,
"internalStatusCall": 1,
"response":
/* Can be a JSON object or a JSON array of objects */
}
}
由于收到的所有 JSON 的结构都相似,我想利用这一点并将对象扩展为从 JSON 映射。
我会考虑这样的事情:
public class TABaseObject {
@SerializedName("status_code")
protected int status_code;
@SerializedName("status_message")
protected String status_message;
protected String type;
public TABaseObject(int status_code, String status_message, String type) {
this.status_code = status_code;
this.status_message = status_message;
this.type = type;
}
}
从这个对象扩展,内部对象将是:
public class TAResultObject extends TABaseObject{
@SerializedName("exito")
protected boolean exito;
@SerializedName("codigoEstado")
protected int codigoEstado;
public TAResultObject(int status_code, String status_message, boolean exito, int codigoEstado) {
super(status_code, status_message, "resultado");
this.exito = exito;
this.codigoEstado = codigoEstado;
}
@Override
public String toString() {
return super.toString() + " ////// " + "TAResultObject{" +
"exito=" + exito +
", codigoEstado=" + codigoEstado +
'}';
}
从这个其他对象,我会将 TAResultObject 扩展到对应的对象。
我尝试了几种反序列化方法(TypeAdapterFactory、RuntimeTypeAdapterFactory 等),但都没有成功。
是否有任何策略能够反序列化提到的 JSON。我真的很感谢您对此提供任何帮助。
【问题讨论】:
-
很难映射提供的 JSON 和 head 中的映射。您可能错过了要添加的其他内容吗?..
标签: android json serialization gson