2017-04-06 28 views
1

如何利用改造如何利用改造3

{ 
"response": { 
    "result": "Success", 
    "data": "Added Successfully" 
} 
} 

我的POJO類

公共類ResponseList {

@SerializedName("response") 
private Response response; 

public Response getResponse() { 
    return response; 
} 

public void setResponse(Response response) { 
    this.response = response; 
} 

public class ResponseInr { 

    @SerializedName("result") 
    private String result; 
    @SerializedName("data") 
    private String data; 

    public String getResult() { 
     return result; 
    } 

    public void setResult(String result) { 
     this.result = result; 
    } 

    public String getData() { 
     return data; 
    } 

    public void setData(String data) { 
     this.data = data; 
    } 

} 
訪問對象的響應裏面的字符串結果訪問對象內部的字符串值

}

//發佈數據

Map data = new HashMap <>();

data.put("data_type", "PostCompliant"); 

    data.put("compliant_name", "map1"); 

    data.put("location", "map_cbe"); 

    data.put("description", "map_desc"); 

    data.put("compliant_status", "map_true"); 

    data.put("user_id", "map_id"); 

    Call<ResponseList> call3 = apiInterface.doCreateUserWithFieldrespon(data); 
    call3.enqueue(new Callback<ResponseList>() { 
     @Override 
     public void onResponse(Call<ResponseList> call, Response<ResponseList> response) { 

      System.out.println("test" + response.body().toString()); 

      ResponseList userList = response.body(); 

      String result = userList.result; 
      String data = userList.data; 

      responseText.setText(result + "\t" + data); 

     } 

     @Override 
     public void onFailure(Call<ResponseList> call, Throwable t) { 

      Log.d("Error", "" + t.getMessage()); 
      call.cancel(); 
     } 
    }); 
+0

您正在嘗試ResponseList中的不同類。用ResponseInr替換Response或將ResponseInr重命名爲Response。 – Pehlaj

+0

我在Response類中使用了ResponseInr類,因爲String變量的結果和響應對象中的數據 – sangavi

+0

您正在使用Response,ResponseInr,ResponseList。回覆在哪裏請發佈回覆類 – Pehlaj

回答

1

嘗試

public class ResponseList { 

    @SerializedName("response") 
    private ResponseInr response; 

    public ResponseInr getResponse() { 
     return response; 
    } 

    public void setResponse(ResponseInr response) { 
     this.response = response; 
    } 

    public class ResponseInr { 

     @SerializedName("result") 
     private String result; 
     @SerializedName("data") 
     private String data; 

     public String getResult() { 
      return result; 
     } 

     public void setResult(String result) { 
      this.result = result; 
     } 

     public String getData() { 
      return data; 
     } 

     public void setData(String data) { 
      this.data = data; 
     } 

    } 

} 
+0

我已經這樣做了,但我怎麼能得到結果和數據字符串值內聲明ResponseInr類? – sangavi

+0

謝謝你的回覆 – sangavi

+0

使用userList.getResponse()。getResult()和userList.getResponse()。getData() – Pehlaj

0

隨着一些分析我找到了自己的解決方案:

我的POJO類:

public class ResponseList { 

@SerializedName("response") 
private Response response; 

public Response getResponse() { 
    return response; 
} 

public void setResponse(Response response) { 
    this.response = response; 
} 

public class Response { 

    @SerializedName("result") 
    private String result; 
    @SerializedName("data") 
    private String data; 

    public String getResult() { 
     return result; 
    } 

    public void setResult(String result) { 
     this.result = result; 
    } 

    public String getData() { 
     return data; 
    } 

    public void setData(String data) { 
     this.data = data; 
    } 

} 

}

內活動

Call<ResponseList> call3 = apiInterface.doCreateUserWithFieldrespon(data); 
    call3.enqueue(new Callback<ResponseList>() { 
     @Override 
     public void onResponse(Call<ResponseList> call, Response<ResponseList> response) { 

      System.out.println("test" + response.body().toString()); 

      ResponseList userList = response.body(); 

      ResponseList.Response respo = userList.getResponse(); 

      String data = respo.getData(); 
      String result = respo.getResult(); 

      Toast.makeText(getApplicationContext(), result + " resut\n" + data + " data\n", Toast.LENGTH_SHORT).show(); 
      responseText.setText(result + "\t" + data); 

     } 

     @Override 
     public void onFailure(Call<ResponseList> call, Throwable t) { 

      Log.d("Error", "" + t.getMessage()); 
      call.cancel(); 
     } 
    }); 
}