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.
Irgendwo übergeben Sie ein JSONArray statt eines JSONObject – JCoder
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. –
Diese Methode 'GetDiscoverContent.fromJSON (jsonArray)' fordert tatsächlich JSONArray oder JSONObject an? – JCoder