2016-03-23 11 views
-1

Ich habe Android-Programmierung gestartet und vor kurzem paar Probleme bekommen. Ich bin Daten aus der Datenbank zu holen und mit POSTMAN, i dem Ergebnis in JSON wie unten sehen kann, aber während es das Parsen, das gibt mir Fehler:Wert Array vom Typ java.lang.String kann nicht in JSONObject konvertiert werden

{ 
    "result": [ 
    { 
     "Date": "18-3-2016", 
     "Events": "Local Holiday" 
    }, 
    { 
     "Date": "23-3-2016", 
     "Events": "Monthly Fees" 
    }, 
    { 
     "Date": "15-4-2016", 
     "Events": "Monthly Fees" 
    }, 
    { 
     "Date": "23-4-2016", 
     "Events": "Annual Day" 
    }, 
    { 
     "Date": "30-4-2016", 
     "Events": "session end" 
    }, 
    { 
     "Date": "9-4-2016", 
     "Events": "Parent Teacher Meeting" 
    } 
    ] 
} 

I-Code bin mit angezeigt werden, aber ich Störung erhalte, mein Code:

private void showJSON(String response) { 

    String child_name = ""; 
    String Date =""; 
    String address=""; 
    //String vc = ""; 
    try { 
     final String TAG = events.class.getSimpleName(); 
     Log.d(TAG, "showJSON: \n"+response); 
     JSONObject jsonObject = new JSONObject(response); 

     //Get the instance of JSONArray that contains JSONObjects 
     // JSONArray jsonArray = jsonRootObject.optJSONArray(config_events.JSON_ARRAY); 
     JSONArray result = jsonObject.getJSONArray(config_events.JSON_ARRAY); 
     //Iterate the jsonArray and print the info of JSONObjects 
     for (int i = 0; i < result.length(); i++) { 
      //JSONObject jsonObject = jsonArray.getJSONObject(i); 
      //JSONObject jsonObject = new JSONObject(response); 

      Log.d(TAG, "showJSON: Event list size: "+result.length()); 
      JSONObject collegeData = result.getJSONObject(0); 
      child_name = collegeData.getString(config_events.KEY_NAME); 
      address = collegeData.getString(config_events.KEY_ADDRESS); 
      //vc = collegeData.getString(config.KEY_VC); 


      textViewResult.setText("EVENTS:\t" + address); 
     } 

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

Fehler:

Value Array of type java.lang.String cannot be converted to JSONObject 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at org.json.JSON.typeMismatch(JSON.java:111) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:158) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:171) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.weavearound.schools.weavearound.events.showJSON(events.java:105) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.weavearound.schools.weavearound.events.access$100(events.java:25) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.weavearound.schools.weavearound.events$1.onResponse(events.java:82) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.weavearound.schools.weavearound.events$1.onResponse(events.java:78) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:67) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at android.os.Handler.handleCallback(Handler.java:605) 
03-23 19:05:35.982 2128-2128/com.weavearound.schools.weavearound W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:92) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at android.os.Looper.loop(Looper.java:137) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:4517) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at java.lang.reflect.Method.invoke(Method.java:511) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
03-23 19:05:35.992 2128-2128/com.weavearound.schools.weavearound W/System.err:  at dalvik.system.NativeStart.main(Native Method) 

-Code für die Antwort:

String url = config_events.DATA_URL; 

     StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       loading.dismiss(); 
       showJSON(response); 
      } 
     }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(events.this,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
        } 
       }); 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest 

)

+0

Welchen Fehler bekommen Sie? – jonhid

+0

Welches ist Ihre 105 Linie? –

+0

@BhushanBhangale: JSONObject jsonObject = neues JSONObject (Antwort); – user2592029

Antwort

0

Können Sie diese Zeilen ändern ... sicher sein

  JSONArray result = jsonObject.getJSONArray("result"); 

      for (int i = 0; i < result.length(); i++) { 

       JSONObject collegeData = result.getJSONObject(i); 
       child_name = collegeData.getString("Date"); 
       address = collegeData.getString("Events"); 
0

Sie machen eine String-Anfrage. Nehmen Sie stattdessen ein JsonObjectRequest vor. Dann werden Sie eine Json Antwort wie diese erhalten -

showJSON(JsonObject response) 

dann das Ergebnis nehmen von ihm so -

JSONArray result = response.getJSONArray("result"); 
Verwandte Themen