我想在不同版本的改型中向服务器发送一个json数组,但我只给出以下错误:
第1行第1列路径的输入结束$
我的java代码是:
private void setOnClickSubmit() {
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
load_submit.setVisibility(View.VISIBLE);
btn_submit.setAlpha(0.5f);
btn_submit.setText("");
btn_submit.setEnabled(false);
btn_exit.setAlpha(0.5f);
btn_exit.setEnabled(false);
ansInf = intent.getExtras().getParcelableArrayList("answers");
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject =new JSONObject();
try {
jsonObject.put("user_id","17");
jsonObject.put("mikhay", new SecurityCode().getSecCode());
jsonObject.put("price", "200");
jsonObject.put("cat_id", "20");
jsonArray.put(jsonObject);
for(int i = 0 ; i < ansInf.size() ; i++){
JSONObject jsonObject1 =new JSONObject();
jsonObject1.put("question",ansInf.get(i).getQuestion());
jsonObject1.put("type", ansInf.get(i).getType());
jsonObject1.put("field", ansInf.get(i).getAnswer());
jsonArray.put(jsonObject1);
}
Log.i("test3", "setOnClickSubmit: " + jsonArray);
ApiClient.getInstance().getApi().CatInf(jsonArray).enqueue(new Callback<Status>() {
@Override
public void onResponse(Call<Status> call, Response<Status> response) {
Log.e("test3", "onResponse: "+response.body().getStatus() );
if (response.isSuccessful() && response.body().getStatus().equals("successfull")){
load_submit.setVisibility(View.GONE);
btn_submit.setAlpha(1f);
btn_submit.setText("ثبت نهایی");
btn_submit.setEnabled(true);
btn_exit.setAlpha(1f);
btn_exit.setEnabled(true);
Snackbar snackbar = Snackbar
.make(findViewById(android.R.id.content)
,"با موفقیت ثبت شد. به سفارشات مراجعه کنید.",
Snackbar.LENGTH_LONG).
setAction("سفارشات", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.getView().setBackgroundColor(ContextCompat.getColor(PriceActivity.this, R.color.blue8));
snackbar.setActionTextColor(getResources().getColor(R.color.white));
snackbar.show();
}
else {
load_submit.setVisibility(View.GONE);
btn_submit.setAlpha(1f);
btn_submit.setText("ثبت نهایی");
btn_submit.setEnabled(true);
btn_exit.setAlpha(1f);
btn_exit.setEnabled(true);
Snackbar snackbar = Snackbar
.make(findViewById(android.R.id.content)
,"مشکلی پیش آمد",
Snackbar.LENGTH_LONG).
setAction("باشه!", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.getView().setBackgroundColor(ContextCompat.getColor(PriceActivity.this, R.color.blue8));
snackbar.setActionTextColor(getResources().getColor(R.color.white));
snackbar.show();
}
}
@Override
public void onFailure(Call<Status> call, Throwable t) {
load_submit.setVisibility(View.GONE);
btn_submit.setAlpha(1f);
btn_submit.setText("ثبت نهایی");
btn_submit.setEnabled(true);
btn_exit.setAlpha(1f);
btn_exit.setEnabled(true);
Log.e("test3", "onFailure: "+t.getMessage());
Snackbar snackbar = Snackbar
.make(findViewById(android.R.id.content)
,"خطا برقراری ارتباط با سرور",
Snackbar.LENGTH_LONG).
setAction("باشه!", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.getView().setBackgroundColor(ContextCompat.getColor(PriceActivity.this, R.color.blue8));
snackbar.setActionTextColor(getResources().getColor(R.color.white));
snackbar.show();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
我的界面是:
@POST("add_service")
Call<Status> CatInf(@Body JSONArray jsonArray);
我的日志是:
[{“user\u id”:“17”,“mikhay”:“hi”,“price”:“200”,“cat\u id”:“20”},{“question”:نوع فضای مورد نظر خود را مشخص کنید:","键入“:”radio“,”field“:”تجاری/ اداری"},{"问题“:”آیا این مکان خالی از وسایل یا کلید نخورده است؟","键入“:”radio“,”field“:”خیر"},{"问题“:”متراژ فضای مورد نظر","键入“:”radio“,”field“:”50الی 70متر"},{"问题“:”برآوردتان از مدت زمان لازم برای انجام کار چند ساعت است؟","键入“:”radio“,”field“:”5ساعت"},{"问题“:”به متتخصص آقا نیاز دارید یا خانم؟","键入“:”radio“,”field“:”خانم"},{"问题“:”خدمات مورد نظر خود را مشخص کنید:","键入“:”复选框“,”字段“:”مرتب کردن داخل کابینت و کمد"},{"问题“:”آیا از حیوانات خانگی نگهداری میکنید؟","键入“:”radio“,”field“:”خیر"},{"问题“:”آیا در محل شما بیمار مبتلا به کرونا حضور دارد؟","键入“:”radio“,”field“:”خیر"},{"问题“:”توضیحات تکمیلی:","键入“:”文本“,”字段“:”لات"},{"问题“:”عکس از محل تمیزکاری","键入“:”pic“,”field“:”http://kara-service.ir/pl_include/pic/user__1__photo__72.jpg},{“问题”:تعداد زن و مرد","键入“:”gender“,”field“:”1-0“},{”question“:”جه زمانی به این سرویس نیاز دارید؟","键入“:”date“,”field“:”1399/9/26“},{”question“:”محل انجام سفارش","键入“:”地址“,”字段“:”اصفهان خیابان کاوه"},{"问题“:”محل انجام سفارش","键入“:”文本“,”字段“:”ددک"}]
2020-12-16 10:08:25.845 30914-30914/com.example.zafarapp e/test3:onfailure:第1行第1列路径输入结束$
1条答案
按热度按时间eivnm1vs1#
为什么要用jsonarray?您可以创建一个模型类,并将其直接传递给body,改装gsonverterfactory自动将其转换为json,然后发送到服务器。
对于您的模型类,您可以添加所有字段作为参数,并只填充必需的字段(改装不会发送空字段)
根据上述内容,您的模型类将如下所示: