GSON解析 - 不同类型的密钥

问题描述:

我是gson解析中的新成员。我有响应GSON解析 - 不同类型的密钥

{"data":[23, "Nithinlal P.A"]} 

有时候,我得到的回应是

{"data":false} 

我使用改造2 HTTP客户端library.So我有错误,而越来越像this.How我可以克服这个问题的回应。

+0

这看起来Retrofit-1,不知道这是否会工作改造-2 http://*.com/questions/24279245/how-to-handle-dynamic-json-in-retrofit – Yazan

如果你知道一个给定的请求将返回什么类型的数据,你可以用下面的办法:

数据字段设置为通用型TAPIResponse对象如

public class APIResponse<T>{ 
    private T data; 
    public T getData(); 
} 

然后,第一反应,你应该创建一个叫做用户

class User{ 
    private long id; 
    private String name; 
} 

类,并添加一个方法到你的改造API:

@GET("/api/user")  
void getUser(Callback< APIResponse <User>> callback); 

对于第二个响应,你将添加方法

@GET("/api/status") 
void getStatus(Callback< APIResponse <Boolean>> callback); 

注意 目前,你的第一个响应返回一个数组类型不一致的数组。例如。第一项是一个整数(23),第二项是一个字符串(“Nithinlal P.A”) 您的第一个响应应该是一个JSON对象。

+1

我不认为OP能够确定什么时候它会成为对象,我认为它是基于请求结果(不可预知的) – Yazan

+0

@WKS我无法预测哪种类型的响应会收到。那么我怎样称呼这个 – Nithinlal

+0

@Nithinlal:Yazan已经在他的评论中为这个场景链接了一个答案 –