2016-11-07 97 views
1

我是gson解析中的新成員。我有響應GSON解析 - 不同類型的密鑰

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

有時候,我得到的迴應是

{"data":false} 

我使用改造2 HTTP客戶端library.So我有錯誤,而越來越像this.How我可以克服這個問題的迴應。

+0

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

回答

1

如果你知道一個給定的請求將返回什麼類型的數據,你可以用下面的辦法:

數據字段設置爲通用型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已經在他的評論中爲這個場景鏈接了一個答案 –