2016-12-24 76 views
0

我想從JsonArrayRequest收集字符串,但我一直無法這樣做。我收到提示如下捕捉JsonArray迴應排除Android

12-24 12:55:08.534 19626-19626/com.domainzguru.butiko W/System.err的:org.json.JSONException:沒有價值的肩膀 12-24 12:55:08.537 19626-19626/com.domainzguru.butiko W/System.err:at org.json.JSONObject.get(JSONObject.java:389) 12-24 12:55:08.537 19626-19626/com。 domainzguru.butiko W/System.err:at org.json.JSONObject.getString(JSONObject.java:550) 12-24 12:55:08.537 19626-19626/com.domainzguru.butiko W/System.err:at com .domainzguru.butiko.Fragments.Orders.ItemsFragment $ 2 $ 1.onResponse(ItemsFragment.java:170) 12-24 12:55:08.537 19626-19626/com.domainzguru.butiko W/System.err:at com.domainzguru。 butiko.Fragments.Orders.ItemsFragment $ 2 $ 1.onResponse(它emsFragment.java:163) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W/System.err:at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W/System.err:at com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 12-24 12:55: 08.538 19626-19626/com.domainzguru.butiko W/System.err:at android.os.Handler.handleCallback(Handler.java:739) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W /System.err:at android.os.Handler.dispatchMessage(Handler.java:95) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W/System.err:at android.os.Looper .loop(Looper.java:148) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W/System.err:at android.app.ActivityThread.main(ActivityThr ead.java:5438) 12-24 12:55:08.538 19626-19626/com.domainzguru.butiko W/System.err:在java.lang.reflect.Method.invoke(Native Method) 12-24 12: 55:08.539 19626-19626/com.domainzguru.butiko W/System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:739) 12-24 12:55:08.539 19626- 19626/com.domainzguru.butiko W/System.err的:在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)

這是我的代碼的片斷

JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.POST, ITEM_CUSTOMER_MEASUREMENTS, null, 
        new Response.Listener<JSONArray>() { 
         @Override 
         public void onResponse(JSONArray response) { 

          try { 
           JSONObject jsonobject = new JSONObject(); 

           String shoulder = jsonobject.getString("shoulder"); 
           et_shoulder.setText(shoulder); 
           String arm_hole = jsonobject.getString("arm_hole"); 
           et_arm_hole.setText(arm_hole); 

           String chest_1 = jsonobject.getString("chest_1"); 
           et_chest_1.setText(chest_1); 

           String chest_2 = jsonobject.getString("chest_2"); 
           et_chest_2.setText(chest_2); 

           String waist = jsonobject.getString("waist"); 
           et_waist.setText(waist); 

           String hip = jsonobject.getString("hip"); 
           et_hip.setText(hip); 

           String slit = jsonobject.getString("slit"); 
           et_slit.setText(slit); 

           String top_length = jsonobject.getString("top_length"); 
           et_top_length.setText(top_length); 

           String f_neck = jsonobject.getString("f_neck"); 
           et_f_neck.setText(f_neck); 

           String b_neck = jsonobject.getString("b_neck"); 
           et_b_neck.setText(b_neck); 

           String sleeve_length = jsonobject.getString("sleeve_length"); 
           et_sleeve_length.setText(sleeve_length); 

           String sleeve_breadth = jsonobject.getString("sleeve_breadth"); 
           et_sleeve_breadth.setText(sleeve_breadth); 

           String sleeve_type = jsonobject.getString("sleeve_type"); 
           et_sleeve_type.setText(sleeve_type); 

           String hip_size = jsonobject.getString("hip_size"); 
           et_hip_size.setText(hip_size); 

           String ankle = jsonobject.getString("ankle"); 
           et_ankle.setText(ankle); 

           String bottom_length = jsonobject.getString("bottom_length"); 
           et_bottom_length.setText(bottom_length); 

           String knee = jsonobject.getString("knee"); 
           et_knee.setText(knee); 

           String bottom_breadth = jsonobject.getString("bottom_breadth"); 
           et_bottom_breadth.setText(bottom_breadth); 

           String thigh = jsonobject.getString("thigh"); 
           et_thigh.setText(thigh); 


           Log.d("response", "onResponse: " +shoulder +arm_hole +chest_1 +chest_2 +hip +slit +top_length +f_neck +b_neck +sleeve_length 
             +sleeve_breadth +sleeve_type +hip_size +ankle +bottom_length +knee +bottom_breadth +thigh); 


          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         } 
        }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
         } 
        }){ 
       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        Map<String,String> headers = new HashMap<>(); 
        headers.put("Authorization", api_token); 
        headers.put("X-Request-ID", cust_id); 
        headers.put("X-Requested-With", item_type); 

        Log.d("heade values", "getHeaders: " +api_token+" "+cust_id+" "+item_type); 
        return headers; 
       } 
      }; 

      //Creating request queue 
      RequestQueue requestQueue = Volley.newRequestQueue(ItemsFragment.this.getActivity()); 

      //Adding request to the queue 
      requestQueue.add(jsonArrayRequest); 

有人可以告訴我代碼有什麼問題。這是來自服務器的響應看起來像

[ { 「ID」:3, 「的order_id」:3, 「EMPLOYEE_ID」:1, 「ITEM_TYPE」:8, 「肩」 : 「」, 「arm_hole」: 「」, 「chest_1」: 「」, 「chest_2」: 「」, 「腰」: 「」, 「臀部」: 「」, 「狹縫」:「 「, 」top_length「:」「, 」f_neck「:」「, 」b_neck「:」「, 」sleeve_length「:」「, 「sleeve_breadth」: 「」, 「sleeve_type」: 「」, 「hip_size」: 「38」, 「腳踝」: 「」, 「bottom_length」: 「70」, 「拐點」: 「」, 「bottom_breadth」:「60」,「 」「大腿」:「 , 「的updated_at」: 「2016年12月22日6點38分01秒」, 「CUSTOMER_ID」:1, 「ITEM_ID」:3 } ]

+0

@Panveet辛格我已經更新了錯誤的詳細信息Jsonrequest在onclicklistener trigerred,這是當onclicklistener已經開始 – Anish688

+1

按照你JSON解析你,我得到的錯誤必須首先傳遞JSONArray對JSONObject的響應,然後嘗試從JSONObject獲取焊接響應。 –

+0

@Shashanth:JSONArray jsonObject = new JSONArray();當我使用getString時,給我錯誤說:「無法將json數組中的getString(int)應用於(java.lang.String) – Anish688

回答

0
更改

這部分:

public void onResponse(JSONArray response) { 

     try { 
      JSONArray jsonobect = new JSONArray(); 

JSONObject jsonobject = response.getJSONObject(0);