这是我想发布json到服务器的方式。问题是,当我尝试使用我的改造回调发布此内容时
SaveCheques(CityID, ClientID,TotalCheques,chequelist);
它给出了非法异常预期BEGIN_OBJECT但在第1行第71列路径$.data.Cheques处是STRING[0]
没有检查名单我的反应是成功的
保存支票(城市ID、客户ID、支票总数);
{"data":{
"cityid":521,
"clientid":16,
"totalcheque":4,
"Cheques":[
{"chequeamount":20000,
"chequenumber":12,
"chequedate":"11/6/18",
"chequeimage":"www.content.hytul/ddrfsss"
},
{"chequeamount":24000,
"chequenumber":11,
"chequedate":"11/6/18",
"chequeimage":"www.content.hbbyul/sdrtfsbs"
}
]}
}
这些是我从schema上得到的pogo类
public class Cheques {
@SerializedName("chequeamount")
@Expose
private Integer chequeamount;
@SerializedName("chequenumber")
@Expose
private Integer chequenumber;
@SerializedName("chequedate")
@Expose
private String chequedate;
@SerializedName("chequeimage")
@Expose
private String chequeimage;
public Cheques( Integer chequeamount , Integer chequenumber ,String chequedate, String chequeimage)
{
this.chequeamount =chequeamount;
this.chequenumber = chequenumber;
this.chequedate = chequedate;
this.chequeimage = chequeimage;
}
public Integer getChequeamount() {
return chequeamount;
}
public void setChequeamount(Integer chequeamount) {
this.chequeamount = chequeamount;
}
public Integer getChequenumber() {
return chequenumber;
}
public void setChequenumber(Integer chequenumber) {
this.chequenumber = chequenumber;
}
public String getChequedate() {
return chequedate;
}
public void setChequedate(String chequedate) {
this.chequedate = chequedate;
}
public String getChequeimage() {
return chequeimage;
}
public void setChequeimage(String chequeimage) {
this.chequeimage = chequeimage;
}
}
//对于数据类
public class Data {
@SerializedName("cityid")
@Expose
private Integer cityid;
@SerializedName("clientid")
@Expose
private Integer clientid;
@SerializedName("totalcheque")
@Expose
private Integer totalCheque;
@SerializedName("Cheques")
@Expose
private ArrayList<Cheques> cheques ;
public Integer getCityid() {
return cityid;
}
public void setCityid(Integer cityid) {
this.cityid = cityid;
}
public Integer getClientid() {
return clientid;
}
public void setClientid(Integer clientid) {
this.clientid = clientid;
}
public Integer getTotalCheque() {
return totalCheque;
}
public void setTotalCheque(Integer totalCheque) {
this.totalCheque = totalCheque;
}
public List<Cheques> getCheques() {
return cheques;
}
public void setCheques(ArrayList<Cheques> cheques) {
this.cheques = cheques;
}
}
//对于示例类
public class Example {
@SerializedName("code")
@Expose
private String code;
@SerializedName("msg")
@Expose
private String msg;
@SerializedName("data")
@Expose
private Data data;
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
INAPI接口
@FormUrlEncoded
@POST("dummy_chequedata.php")
Call<Example> SaveCheques(@Field("clientid") Integer ClientID,
@Field("cityid") Integer CityID,
@Field("totalcheque") Integer TotalCheques,
@Field("Cheques[]")ArrayList<Cheques> chequeslist
);
在Activity中,我有一个方法,我在其中调用
apiInterface2 = ChequeApi.getChequeApi().create(Api.class);
Call<Example> call = apiInterface2.SaveCheques(CityID,ClientID,TotalCheques,chequelist);
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Call<Example> call, Response<Example> response) {
if (response.isSuccessful()) {
Log.d("onResponse", "" + response.message());
//String data = response.body().toString();
// Cheqqlist = response.body().getData().getCheques();
//Toast.makeText(Recieve_Payment.this, "dddddd", Toast.LENGTH_LONG).show();
Toast.makeText(Recieve_Payment.this, response.body().getData().getCityid()+" "+response.body().getData().getClientid()+" "+response.body().getData().getTotalCheque()
, Toast.LENGTH_LONG).show();
}
else{
Log.e("response:","response failiure");}
}
@Override
public void onFailure(Call<Example> call, Throwable t) {
Log.d("onFailure", t.toString());
}
});
我希望整个数据被张贴和响应体我应该能够检索数据像响应. body().getData().getClientid()和最有可能这个响应.body().getData().getCheques()和在getCheques()所有的支票金额,支票号码…
@POST("dummy_chequedata.php")
Call<Example> SaveCheques(@Body Data detail);
像这样调用api
Data detail = new Data();
detail.setCityid(CityID);
detail.setClientid(ClientID);
detail.setTotalCheque(TotalCheques);
detail.setCheques(chequelist);
Call<Example> call = apiInterface2.SaveCheques(detail);