【发布时间】:2018-12-25 03:25:44
【问题描述】:
这是我想将 json 发布到服务器的方式。问题是当我尝试使用我的改造回调发布此内容时
SaveCheques(CityID,ClientID,TotalCheques,checklist);
它给出了 Illegal Exception Expected BEGIN_OBJECT 但在第 1 行第 71 列路径 $.data.Cheques[0]
没有清单我的回应是成功的
SaveCheques(CityId,ClientId,TotalCheques);
{"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"
}
]}
}
这些是我从架构中得到的 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;
}
}
IN API 接口
@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
);
在活动中我有一个方法可以调用
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());
}
});
我希望发布整个数据,并且在响应正文中我应该能够检索诸如 response.body().getData().getClientid() 之类的数据,并且很可能是这个 response.body().getData()。 getCheques() 和 getCheques() 中的所有支票金额、支票号码……都可以检索。
【问题讨论】:
-
为什么字符串里面有数组符号? @Field("Cheques[]")ArrayList
chequeslist -
我不知道如何发布数组,我假设你能说出来。