2017-06-17 9 views
-1

Ich benutze Google Bücher API, um einige Daten als JSON Antwort zu erhalten. in der Antwort gibt es JSONArrays, jedes Element ist ein Buch und es enthält Daten darüber. Das Problem ist, dass die Elemente symmetrisch sein sollten, wenn es um die Daten geht, die sie enthalten. mit anderen Worten, jedes Element sollte einen Titel, Autoren, Buchumschlag-URL, Bewertung usw. enthalten. und wenn ein Buch nicht enthält, beispielsweise ein Rating, sollte dieser Wert vorhanden und leer sein, aber es gar nicht für dieses Element existiert so in der for-Schleife führt es eine AusnahmeAndroid: Antwort von json, Google API und Bild von URL

the exception message

Also was sollte ich tun, um ein solches Problem zu vermeiden, und ich brauche diese Daten, auch wenn es leer ist.


der andere Teil ist, gibt es eine URL für die Abdeckung des Buches in der Antwort zur Verfügung gestellt. Ich möchte dieses Bild bekommen. Ich versuchte beide Top Antworten in this link und keiner von ihnen schien zu arbeiten.

+0

Klingt wie ziemlich grundlegende Sachen. 'if (! json.obj) {// show default oder etwas} else {// mach deinen Code}' – Tigger

+0

Zeige deinen Code, bitte –

Antwort

0

Versuchen Sie, optJSONObject anstelle von getJSONObject zu verwenden, um JSONObject zu erhalten.
Hinweis: getJSONObject wird Fehler durch, wenn das Objekt, den Schlüssel nicht haben, aber optJSONObject wird nur null zurück, wenn der Objektwert nicht

JSONArray array = null;// your array 
      for (int i = 0; i < array.length(); i++) { 
       JSONObject jsonObject = array.optJSONObject(i); 

       if(jsonObject == null) { 
        continue; 
       } 

    //   JSONObject ratingObject = jsonObject.getJSONObject("rating"); // Dont use this 
       JSONObject ratingObject = jsonObject.optJSONObject("rating"); 

       if(ratingObject != null) { 
        // Do someting here 
       } 
      } 

Für Bild Laden haben Sie Glide lib es verwenden können kann dir helfen.

+0

vielen Dank, dass mein Problem mit Json gelöst hat – sowailam