jsonexception在获取JSONARRAY JSONOBJECT时



从服务器中获取JSON响应时获得JSON例外。我的伙计们。任何帮助将不胜感激。谢谢

服务器的JSON响应:

注意:"上传"是JSONARRAY。

  {
        "code": 200,
        "upload": {
        "Booking": {
        "id": "17",
        "contributor_id": "16",
        "table_of_content_id": "1",
        "composition_id": "12",
        "completion": "2017-05-20",
        "approved": null,
        "cdn_id": null,
        "secret_token": null,
        "uploaded_on": null,
        "created": "2017-05-09 14:41:49",
        "modified": "2017-05-09 14:41:49"
        },
        "TableOfContent": {
        "id": "1",
        "name": "গোরা",
        "category_id": "1",
        "language_id": "1",
        "created": "2016-03-09 03:39:01",
        "modified": "2016-03-09 14:39:01"
        }
        }
        }

这就是我尝试做的方式。

public void forwardtoOurServer() {
        JSONObject jsonObject=null;
        String tag_string_req = "req_login";
        StringRequest postStringRequest = new StringRequest(Request.Method.POST, RECORD_COMPOSITION_API,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.d(TAG, "Audio Upload Response Check :" + response);

                        try {
                            JSONObject json = new JSONObject(response);
                            String code = json.getString("code");
                            JSONArray obj = json.getJSONArray("upload");
                            Log.d(TAG, "obj Response Check :" + obj);
                            for (int i = 0; i < obj.length(); i++) {
                                JSONObject jsonObject = obj.getJSONObject(i);
                                Log.d(TAG, "jsonObject Response Check :" + jsonObject);
                                JSONObject bookings = obj.getJSONObject(Integer.parseInt("Booking"));
//                                int id = jsonObject.getInt("id");
//
//                                String type = jsonObject.getString("type");
                                // retrieve the values like this so on..
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e(TAG, "Error Response Check :" + error);
                    }
                }) {
            @RequiresApi(api = Build.VERSION_CODES.N)
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("data[Booking][id]",bookingId);
                params.put("data[Booking][contributor_id]",contributor_id);
                params.put("data[Booking][table_of_content_id]",tocId);
                params.put("data[Booking][cdn_id]",vs_cdn_id);
                params.put("data[Booking][secret_token]",secret_token);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
                sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
                Date now = new Date();
                String strDate = sdf.format(now);
                params.put("data[Booking][uploaded_on]",strDate);
                Log.d(TAG, "Params :" + params);
                return params;
            }
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/x-www-form-urlencoded");
                headers.put("UUID", device_uuid);
                headers.put("APPID", "2A192A0C22");
                headers.put("USERID", "1");
                headers.put("PLATFORM", "Andriod");
                headers.put("APP_REQUEST", "1");
                headers.put("PLATFORMVERSION",androidOS);
                return headers;
            }
        };

        AppController.getInstance().addToRequestQueue(postStringRequest, tag_string_req);
    }

日志:

06-07 12:44:18.865 13701-13903/com.showhow2.www.thetagoreproject D/Null: Params :{data[Booking][cdn_id]=326929293, data[Booking][table_of_content_id]=1, data[Booking][id]=16, data[Booking][secret_token]=s-0DT7x, data[Booking][contributor_id]=16, data[Booking][uploaded_on]=2017-06-07T07:14:18Z}
06-07 12:44:20.629 13701-13701/com.showhow2.www.thetagoreproject D/Null: Audio Upload Response Check :{"code":200,"upload":{"Booking":{"id":"17","contributor_id":"16","table_of_content_id":"1","composition_id":"12","completion":"2017-05-20","approved":null,"cdn_id":null,"secret_token":null,"uploaded_on":null,"created":"2017-05-09 14:41:49","modified":"2017-05-09 14:41:49"},"TableOfContent":{"id":"1","name":"u0997u09cbu09b0u09be","category_id":"1","language_id":"1","created":"2016-03-09 03:39:01","modified":"2016-03-09 14:39:01"},"Composition":{"id":"12","content":"u09acu09bfu09a8u09df u0993 u0997u09cbu09b0u09be u09aau09b0u09c7u09b6u09c7u09b0 u09acu09beu09dcu09bf u09b9u0987u09a4u09c7 u09b0u09beu09b8u09cdu09a4u09beu09df u09acu09beu09b9u09bfu09b0 u09b9u0987u09b2u09c7 u09acu09bfu09a8u09df u0995u09b9u09bfu09b2, &quot;u0997u09cbu09b0u09be, u098fu0995u099fu09c1 u0986u09b8u09cdu09a4u09c7 u0986u09b8u09cdu09a4u09c7 u099au09b2u09cb u09adu09beu0987-- u09a4u09cbu09aeu09beu09b0 u09aau09be u09a6u09c1u099fu09cb u0986u09aeu09beu09a6u09c7u09b0 u099au09c7u09dfu09c7 u0985u09a8u09c7u0995 u09acu09dcu09cb-- u0993u09b0 u099au09beu09b2u099fu09be u098fu0995u099fu09c1 u0996u09beu099fu09cb u09a8u09be u0995u09b0u09b2u09c7 u09a4u09cbu09aeu09beu09b0 u09b8u0999u09cdu0997u09c7 u09afu09c7u09a4u09c7 u0986u09aeu09b0u09be u09b9u09beu0981u09aau09bfu09dfu09c7 u09aau09dcu09bfu0964&quot;n u0997u09cbu09b0u09be u0995u09b9u09bfu09b2, &quot;u0986u09aeu09bf u098fu0995u09b2u09beu0987 u09afu09c7u09a4u09c7 u099au09beu0987, u0986u09aeu09beu09b0 u0986u099c u0985u09a8u09c7u0995 u0995u09a5u09be u09adu09beu09acu09acu09beu09b0 u0986u099bu09c7u0964&quot;n u09acu09b2u09bfu09dfu09be u09a4u09beu09b9u09beu09b0 u09b8u09cdu09acu09beu09adu09beu09acu09bfu0995 u09a6u09cdu09b0u09c1u09a4u0997u09a4u09bfu09a4u09c7 u09b8u09c7 u09acu09c7u0997u09c7 u099au09b2u09bfu09dfu09be u0997u09c7u09b2u0964n u09acu09bfu09a8u09dfu09c7u09b0 u09aeu09a8u09c7 u0986u0998u09beu09a4 u09b2u09beu0997u09bfu09b2u0964 u09b8u09c7 u0986u099c u0997u09cbu09b0u09beu09b0 u09acu09bfu09b0u09c1u09a6u09cdu09a7u09c7 u09acu09bfu09a6u09cdu09b0u09cbu09b9 u0995u09b0u09bfu09dfu09be u09a4u09beu09b9u09beu09b0 u09a8u09bfu09dfu09ae u09adu0999u09cdu0997 u0995u09b0u09bfu09dfu09beu099bu09c7u0964 u09b8u09c7 u09b8u09aeu09cdu09acu09a8u09cdu09a7u09c7 u0997u09cbu09b0u09beu09b0 u0995u09beu099bu09c7 u09a4u09bfu09b0u09b8u09cdu0995u09beu09b0 u09adu09cbu0997 u0995u09b0u09bfu09b2u09c7 u09b8u09c7 u0996u09c1u09b6u09bf u09b9u0987u09a4u0964 u098fu0995u099fu09be u099du09dc u09b9u0987u09dfu09be u0997u09c7u09b2u09c7u0987 u09a4u09beu09b9u09beu09a6u09c7u09b0 u099au09bfu09b0u09a6u09bfu09a8u09c7u09b0 u09acu09a8u09cdu09a7u09c1u09a4u09cdu09acu09c7u09b0 u0986u0995u09beu09b6 u09b9u0987u09a4u09c7 u0997u09c1u09aeu099f u0995u09beu099fu09bfu09dfu09be u09afu09beu0987u09a4 u098fu09acu0982 u09b8u09c7 u09b9u09beu0981u09aa u099bu09beu09dcu09bfu09dfu09be u09acu09beu0981u099au09bfu09a4u0964n u09a4u09beu09b9u09be u099bu09beu09dcu09be u0986u09b0-u098fu0995u099fu09be u0995u09a5u09be u09a4u09beu09b9u09beu0995u09c7 u09aau09c0u09dcu09be u09a6u09bfu09a4u09c7u099bu09bfu09b2u0964 u0986u099c u09b9u09a0u09beu09ce u0997u09cbu09b0u09be u09aau09b0u09c7u09b6u09c7u09b0 u09acu09beu09dcu09bfu09a4u09c7 u09aau09cdu09b0u09a5u09ae u0986u09b8u09bfu09dfu09beu0987 u09acu09bfu09a8u09dfu0995u09c7 u09b8u09c7u0996u09beu09a8u09c7 u09acu09a8u09cdu09a7u09c1u09adu09beu09acu09c7 u09acu09b8u09bfu09dfu09be u09a5u09beu0995u09bfu09a4u09c7 u09a6u09c7u0996u09bfu09dfu09be u09a8u09bfu09b6u09cdu099au09dfu0987 u09aeu09a8u09c7 u0995u09b0u09bfu09dfu09beu099bu09c7 u09acu09bfu09a8u09df u098f u09acu09beu
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err: org.json.JSONException: Value {"Booking":{"id":"17","contributor_id":"16","table_of_content_id":"1","composition_id":"12","completion":"2017-05-20","approved":null,"cdn_id":null,"secret_token":null,"uploaded_on":null,"created":"2017-05-09 14:41:49","modified":"2017-05-09 14:41:49"},"TableOfContent":{"id":"1","name":"গোরা","category_id":"1","language_id":"1","created":"2016-03-09 03:39:01","modified":"2016-03-09 14:39:01"},"Composition":{"id":"12","content":"বিনয় ও গোরা পরেশের বাড়ি হইতে রাস্তায় বাহির হইলে বিনয় কহিল, &quot;গোরা, একটু আস্তে আস্তে চলো ভাই-- তোমার পা দুটো আমাদের চেয়ে অনেক বড়ো-- ওর চালটা একটু খাটো না করলে তোমার সঙ্গে যেতে আমরা হাঁপিয়ে পড়ি।&quot;n গোরা কহিল, &quot;আমি একলাই যেতে চাই, আমার আজ অনেক কথা ভাববার আছে।&quot;n বলিয়া তাহার স্বাভাবিক দ্রুতগতিতে সে বেগে চলিয়া গেল।n বিনয়ের মনে আঘাত লাগিল। সে আজ গোরার বিরুদ্ধে বিদ্রোহ করিয়া তাহার নিয়ম ভঙ্গ করিয়াছে। সে সম্বন্ধে গোরার কাছে তিরস্কার ভোগ করিলে সে খুশি হইত। একটা ঝড় হইয়া গেলেই তাহাদের চিরদিনের বন্ধুত্বের আকাশ হইতে গুমট কাটিয়া যাইত এবং সে হাঁপ ছাড়িয়া বাঁচিত।n তাহা ছাড়া আর-একটা কথা তাহাকে পীড়া দিতেছিল। আজ হঠাৎ গোরা পরেশের বাড়িতে প্রথম আসিয়াই বিনয়কে সেখানে বন্ধুভাবে বসিয়া থাকিতে দেখিয়া নিশ্চয়ই মনে করিয়াছে বিনয় এ বাড়িতে সর্বদাই যাতায়াত করে। অবশ্য, যাতায়াত করিলে যে কোনো অপরাধ আছে তাহা নয়; গোরা যাহাই বলুক পরেশবাবুর সুশিক্ষিত পরিবারের সঙ্গে অন্তরঙ্গভাবে পরিচিত হইবার সুযোগ পাওয়া বিনয় একটা বিশেষ লাভ বলিয়া গণ্য করিতেছে; ইঁহাদের সঙ্গে মেশামেশি করাতে গোরা যদি কোনো দোষ দেখে তবে সেটা তাহার নিতান্ত গোঁড়ামি; কিন্তু পূর্বের কথাবার্তায় গোরা নাকি জানিয়াছে যে বিনয় পরেশবাবুর বাড়িতে যাওয়া-আসা করে না, আজ সহসা তাহার মনে হইতে পারে যে সে কথাটা সত্য নয়। বিশেষত বরদাসুন্দরী তাহাকে বিশেষ করিয়া ঘরে ডাকিয়া লইয়া গেলেন, সেখানে তাঁহার মেয়েদের সঙ্গে তাহার আলাপ হইতে লাগিল-- গোরার তীক্ষ্ণ লক্ষ হইতে ইহা এড়াইয়া যায় নাই। মেয়েদের সঙ্গে এইরূপ মেলামেশায় ও বরদাসুন্দরীর আত্মীয়তায় মনে মনে বিনয় ভার�
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at org.json.JSON.typeMismatch(JSON.java:100)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at org.json.JSONObject.getJSONArray(JSONObject.java:588)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.showhow2.www.thetagoreproject.RecordComposition$16.onResponse(RecordComposition.java:704)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.showhow2.www.thetagoreproject.RecordComposition$16.onResponse(RecordComposition.java:694)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at android.os.Looper.loop(Looper.java:148)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5417)
06-07 12:44:20.663 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
06-07 12:44:20.664 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
06-07 12:44:20.664 13701-13701/com.showhow2.www.thetagoreproject W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

您的JSON无效,请删除JSON数组中项目的键(预订,修改(或从数组中移动这些对象。您的JSON解析代码应为

try {
      JSONObject json = new JSONObject(response);
      String code = json.getString("code");
      JsonObject upload = jsonObject.getJSONObject("upload");
      //get the other object like this
      } catch (JSONException e) {
          e.printStackTrace();
      }

现在您使用的是 JSONArray obj = json.getJSONArray("upload");,但是"上传"是jsonobject。

在您的Java代码中使用JSONObject bookings = obj.getJSONObject("upload").getJSONObject("Booking");

尝试此代码

try {
                        JSONObject json = new JSONObject(response);
                        String code = json.getString("code");
                        JSONObject obj = json.getJSONObject("upload");
                        JSONObject objbooking = obj.getJSONObject("Booking");
                        JSONObject objtable = obj.getJSONObject("TableOfContent");
                       //you can get values like below
                       String idbooking = objbooking.getString("id");
                       String idtable = objtable.getString("id");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

最新更新