2017-02-24 3 views
0

Ich versuche, Daten von einem Remote database über eine php Datei zu erhalten und den Inhalt in einen ListView Container auszugeben. Bei der Verwendung von Testdaten (Füllen der Daten mit Strings und Schleifen der Erstellung eines JSON Objekts und anschließendes Hinzufügen jedes Objekts zu einer JSONArray) funktioniert alles einwandfrei. Also ich weiß, dass der Fehler in dem folgenden Code sein muss:Empfangen Fehler von inkompatiblen JSON-Typen für Volley-PHP-Interaktion

Response.Listener<String> responseListener = new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       JSONObject jsonResponse = new JSONObject(response); 
       String name = jsonResponse.getString("name"); 
       String genreAddress = jsonResponse.getString("genreAddress"); 
       String blurb = jsonResponse.getString("blurb"); 

        try { 

         JSONObject newListEntity = new JSONObject(); 
         newListEntity.put("name", name); 
         newListEntity.put("genreAddress", genreAddress); 
         newListEntity.put("blurb", blurb); 

        jsonArray.put(newListEntity); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 

       ArrayList<GetDiscoverContent> getPanelContent = GetDiscoverContent.fromJSON(jsonArray); 
       DiscoverAdapter adapter = new DiscoverAdapter(getContext(), getPanelContent); 
       listView.setAdapter(adapter); 
      } catch(JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 

    DiscoverDbRequest dbReq = new DiscoverDbRequest(tableType, responseListener); 
    RequestQueue queue = Volley.newRequestQueue(getContext()); 
    queue.add(dbReq); 

Hier ist die LogCat für den Fehler:

02-24 11:44:40.389 20391-20391/com.socialivemusic.socialivemusic 
W/System.err: org.json.JSONException: Value [] of type 
org.json.JSONArray cannot be converted to JSONObject 
    02-24 11:44:40.389 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSON.typeMismatch(JSON.java:111) 
    02-24 11:44:40.389 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:159) 
    02-24 11:44:40.399 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:172) 
    02-24 11:44:40.409 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.socialivemusic.socialivemusic.DiscoverFragment$1.onResponse(DiscoverFragment.java:96) 
    02-24 11:44:40.409 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.socialivemusic.socialivemusic.DiscoverFragment$1.onResponse(DiscoverFragment.java:92) 
    02-24 11:44:40.409 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 
    02-24 11:44:40.419 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
    02-24 11:44:40.429 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
    02-24 11:44:40.429 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.os.Handler.handleCallback(Handler.java:733) 
    02-24 11:44:40.439 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.os.Handler.dispatchMessage(Handler.java:95) 
    02-24 11:44:40.439 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at android.os.Looper.loop(Looper.java:136) 
    02-24 11:44:40.439 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.app.ActivityThread.main(ActivityThread.java:5021) 
    02-24 11:44:40.449 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at java.lang.reflect.Method.invokeNative(Native 
Method) 
    02-24 11:44:40.449 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
    02-24 11:44:40.459 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
    02-24 11:44:40.459 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
    02-24 11:44:40.459 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
    02-24 11:44:41.069 20391-20391/com.socialivemusic.socialivemusic W/System.err: org.json.JSONException: Value [] of type 
org.json.JSONArray cannot be converted to JSONObject 
    02-24 11:44:41.089 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSON.typeMismatch(JSON.java:111) 
    02-24 11:44:41.089 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:159) 
    02-24 11:44:41.099 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:172) 
    02-24 11:44:41.099 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.socialivemusic.socialivemusic.DiscoverFragment$1.onResponse(DiscoverFragment.java:96) 
    02-24 11:44:41.109 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.socialivemusic.socialivemusic.DiscoverFragment$1.onResponse(DiscoverFragment.java:92) 
    02-24 11:44:41.109 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 
    02-24 11:44:41.109 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
    02-24 11:44:41.119 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
    02-24 11:44:41.119 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.os.Handler.handleCallback(Handler.java:733) 
    02-24 11:44:41.129 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.os.Handler.dispatchMessage(Handler.java:95) 
    02-24 11:44:41.129 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at android.os.Looper.loop(Looper.java:136) 
    02-24 11:44:41.139 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
android.app.ActivityThread.main(ActivityThread.java:5021) 
    02-24 11:44:41.139 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at java.lang.reflect.Method.invokeNative(Native 
Method) 
    02-24 11:44:41.139 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
    02-24 11:44:41.149 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
    02-24 11:44:41.149 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
    02-24 11:44:41.159 20391-20391/com.socialivemusic.socialivemusic W/System.err:  at dalvik.system.NativeStart.main(Native Method) 

Wer versteht den Fehler erhalte ich? Ich habe sehr ähnlichen Code auf einer Login-Seite und das funktioniert ganz gut für mich.

+0

Irgendwo übergeben Sie ein JSONArray statt eines JSONObject – JCoder

+1

Können Sie ein Beispiel für den JSON, den Sie erhalten, veröffentlichen? Ich denke, Sie bekommen ein leeres JSON-Array, aber ein Sample würde helfen, das Problem besser zu lokalisieren. –

+0

Diese Methode 'GetDiscoverContent.fromJSON (jsonArray)' fordert tatsächlich JSONArray oder JSONObject an? – JCoder

Antwort

0

System.err: at org.json.JSONObject.<init>()

Der einzige Ort, der Fehler auftreten können.

JSONObject jsonResponse = new JSONObject(response); 

Die Fehlermeldung

JSONArray cannot be converted to JSONObject

So .. als JSONArray Parse

JSONArray jsonResponse = new JSONArray(response); 

Oder ... Verwenden Volleys JSONArrayRequest Klasse

Vorschlag: Verwenden Retrofit Behandeln Sie Ihre HTTP-Anfragen und JSON-Konvertierungen in einem Durchgang

Verwandte Themen