GSON解析 - 不同类型的相同密钥

时间:2016-11-07 07:55:00

标签: java android json gson

我是gson解析的新手。我有回复

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

有时我得到了回复

{"data":false}

我正在使用Retrofit 2 Http客户端库。所以在得到这样的响应时我收到错误。我怎么能克服这个问题。

1 个答案:

答案 0 :(得分:1)

如果您知道给定请求将返回什么类型的数据,您可以使用以下方法:

将数据字段设置为T对象中的泛型APIResponse,例如

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

然后,对于第一个响应,您应该创建一个名为User

的类
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),第二项是字符串(&#34; Nithinlal P.A&#34;) 您的第一个响应应该是JSON对象。