我有以下Json响应:
{"的StatusCode":2" Error_fields":[{"使用者":" XXX"},{"密码":" YYY"}]},我必须使用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>
,结果返回空值,但它会计算&#34; 2&#34;作为数组大小!?
答案 0 :(得分:0)
List<ErroField>
更改为来解决问题
List<Map<String,String>> Errro;
并且它使用动态范围的返回json对象而不依赖于键