我在向服务器发送截击请求时出现了一些错误……任何人都可以帮助我

问题描述 投票:-2回答:1

我想将对象列表转换为json数组,然后将此数组传递到服务器上以进行提交我尝试了很多次但是失败了我认为主要问题在于我可以将对象列表转换为json数组的部分。请查看代码和错误并指导我谢谢

尝试{

                        final ProgressDialog progress = new ProgressDialog(getContext());
                        progress.setTitle("Submitting Leave");
                        progress.setMessage("Loading...");
                        progress.setCancelable(false); // disable dismiss by tapping outside of the dialog
                        progress.show();

//                        jsonObject.put("dayList",leaveDayListArrayList);

//                     JSONArray jsonArray55 = new JSONArray(utils.leaveStaEndDTOList);
                        JSONArray jsonArray33 = new JSONArray();


                     for (int j=0; j<=utils.leaveStaEndDTOList.size() ; j++ ){

                         JSONObject jsonObject1 = new JSONObject();
                         jsonObject1.put("afternoonValue",utils.leaveStaEndDTOList.get(j).getAfternoonValue());
                         jsonObject1.put("date",utils.leaveStaEndDTOList.get(j).getDate());
                         jsonObject1.put("day",utils.leaveStaEndDTOList.get(j).getDay());
                         jsonObject1.put("dayCode",utils.leaveStaEndDTOList.get(j).getDayCode());
                         jsonObject1.put("holyday",utils.leaveStaEndDTOList.get(j).getHolyday());
                         jsonObject1.put("month",utils.leaveStaEndDTOList.get(j).getMonth());
                         jsonObject1.put("morningValue",utils.leaveStaEndDTOList.get(j).getMorningValue());
                         jsonObject1.put("weekend",utils.leaveStaEndDTOList.get(j).getWeekend());
                         jsonObject1.put("year",utils.leaveStaEndDTOList.get(j).getYear());
                         jsonArray33.put(jsonObject1);

                     }

                        jsonObject.put("dayList",jsonArray33);
                        jsonObject.put("endDate",utils.creLeaveEndDate);
                   jsonObject.put("fileData","data:image/jpeg;base64,"+utils.creLeaveFile);
                        jsonObject.put("resourceId",utils.creLeaveResourceId);
                        jsonObject.put("startDate",utils.creLeaveStartDate);
                        jsonObject.put("statusId",utils.creLeaveStatusId);
                        jsonObject.put("title",utils.creLeaveTitle);
                        jsonObject.put("total",utils.creLeaveTotal);
                        jsonObject.put("typeId",utils.creLeaveTypeId);
                        jsonObject.put("year",utils.creLeaveYear);

                        //        jsonObject.put("leaveId",utils.creLeaveId);

                        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
                                Request.Method.POST, "url", jsonObject, new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject response) {

                                Toast.makeText(getContext(), "Successfully added expense", Toast.LENGTH_SHORT).show();
                                progress.dismiss();
                                final Fragment expenseFragmentList=new ExpenseFragmentList();
                                getFragmentManager().beginTransaction().replace(R.id.fragmentContainerEx,
                                        expenseFragmentList,expenseFragmentList.getClass().getSimpleName())
                                        .addToBackStack(null).commit();
                            }
                        }, new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                progress.dismiss();
                                Toast.makeText(getContext(), error.toString(), Toast.LENGTH_SHORT).show();

                            }
                        }
                        ){
                            @Override
                            public Map<String, String> getHeaders() {


                                Map<String, String> params = new HashMap<String, String>();
                                params.put("Accept", "application/json");
                                params.put("Authorization",utils.bear + user_token);
                                return params;
                            }
                        };

                        queue.add(jsonObjectRequest);

                    }catch (JSONException e){

                        Toast.makeText(getContext(), e.toString(), Toast.LENGTH_SHORT).show();

                    }
                }

这是我的代码错误,其中我将对象列表传递到jsonarray中>]

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sprintsols.Pajita, PID: 22480
    java.lang.IndexOutOfBoundsException: Invalid index 4, size is 4
        at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
        at java.util.ArrayList.get(ArrayList.java:308)
        at com.sprintsols.Pajita.Fragments.LeavesFragment$7.onClick(LeavesFragment.java:304)
        at android.view.View.performClick(View.java:5184)
        at android.view.View$PerformClick.run(View.java:20910)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:145)
        at android.app.ActivityThread.main(ActivityThread.java:5942)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
Process 22480 terminated.

这是错误

{
  "dayList": [
    {
      "afternoonValue": 0,
      "date": "yyyy-MM-dd",
      "day": 0,
      "dayCode": "string",
      "holyday": true,
      "id": 0,
      "month": 0,
      "morningValue": 0,
      "weekend": true,
      "year": 0
    }
  ],
  "endDate": "yyyy-MM-dd",
  "fileData": "string",
  "leaveId": 0,
  "resourceId": 0,
  "startDate": "yyyy-MM-dd",
  "statusId": 0,
  "title": "string",
  "total": 0,
  "typeId": 0,
  "year": 0
}

这是我要发送到服务器的json正文

我想将对象列表转换为json数组,然后将该数组传递到服务器上进行提交,我尝试了很多次,但是失败了,我认为主要问题在于我可以转换的部分...

java android json android-volley
1个回答
0
投票

无论何时遇到错误,请先仔细阅读错误日志。在大多数情况下,都会在此位置明确提及该问题。

© www.soinside.com 2019 - 2024. All rights reserved.