2016-04-28 66 views
-1

解析我有以下JSON響應爲:JSON數組使用GSON

{ 「的StatusCode」:2 「Error_fields」:[{ 「用戶」: 「XXX」},{ 「密碼」: 「YYY」 }]},以及i必須解析使用GSON該響應,所以我已經建立了ResponseBase的類如下:

BaseResponse.java

@SerializedName("StatusCode") 
    private int StatusCode; 

    @SerializedName("Error_fields") 
    List<ErrorField> Erro; 

    public void setStatusCode(int statusCode){ 
     this.StatusCode=statusCode; 
    } 

    public int getStatusCode(){ 
     return this.StatusCode; 
    } 

    public List <ErrorField> getErro() { 
     return Erro; 
    } 

    public void setErro(List <ErrorField> erro) { 
     Erro = erro; 
    } 

和此外,我已經添加了錯誤的字段爲: ErrorField .java

public class ErrorField { 

    String ErrorTitle; 

    String ErrorMessage; 

    public String getErrorTitle() { 
     return ErrorTitle; 
    } 

    public void setErrorTitle(String errorTitle) { 
     ErrorTitle = errorTitle; 
    } 

    public String getErrorMessage() { 
     return ErrorMessage; 
    } 

    public void setErrorMessage(String errorMessage) { 
     ErrorMessage = errorMessage; 
    } 
} 

所以爲了,能夠正確地接收JSON數組,我一定要添加註釋到ErrorTitle是:

@SerializedName("password") 
    String ErrorTitle; 

所以在我的情況下,不知道返回的JSON對象鍵的它會失敗,並不是一個很好的解決方案來添加所有建議的註釋是否存在或不存在,我也試圖將List<ErrorField>設置爲List<JsonObject>,並且返回相同的結果爲空值,但它將數組大小計爲「2」! ?

+0

你的錯誤看起來像地圖超過對象 – njzk2

+0

@ njzk2感謝你的答案,但我已經嘗試過,我得到了JsonSyntaxException,這是相同的,當我將列表更改爲JsonArray –

+0

嗨,我明白你的意思,我不明白它的第一次,但現在我已經改變了到List > Errro;它的工作原理,謝謝。 –

回答

0

問題,通過改變List<ErroField>

List<Map<String,String>> Errro; 

解決,它與返回的JSON對象的動態範圍工作,而不取決於密鑰的