Ich bin eine einfache Anwendung zu machen, wo ich den Barcode eines Buches scannen und holen den Titel und Autor von Google-APIs,Parsing json Objekt von Google api Rückkehr null
Nun, dies ist die URL für json (für eine insbesondere Buch ich bin Scannen)
https://www.googleapis.com/books/v1/volumes?q=isbn:9788120305960
diesen Code mit json in einem String
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String line = "";
while ((line=bufferedReader.readLine())!=null)
{
response+=line;
}
bufferedReader.close();
inputStream.close();
urlConnection.disconnect();
Log.d("Info",response);
return response;
ich speichere das Ergebnis in einem String zu erhalten und diesen Code verwenden, um zu analysieren, durch (json_response
ist ein String)
JSONObject rootObject = new JSONObject(json_response);
JSONArray items = rootObject.getJSONArray("items");
JSONObject items_object = items.getJSONObject(0);
JSONObject volume_info = items_object.getJSONObject("volumeInfo");
book.setTitle(volume_info.getString("title"));
JSONArray authors = volume_info.getJSONArray("authors");
Log.d("Info","authors array length: "+authors.length());
String author="";
for (int i =0;i<authors.length();i++)
{
author+=authors.getString(i)+", ";
}
book.setAuthor(author);
Die Ausnahme ist:
Value null of type org.json.JSONObject$1 cannot be converted to JSONObject
auch benutze ich logcat zu sehen, was in json_response
enthalten ist, sieht es so etwas wie diese
null{ "kind": "books#volumes", "totalItems": 1, "items":...
Die null
hier verursacht wohl das Problem, also ... irgendwelche Erkenntnisse wie man damit umgeht ???
PS: Ich bin ein Student, zum ersten Mal mit json und Android zu tun, Code unprofessionell ist, bitte verzeihen :)
Sie sollten die Variable "response" auf eine leere Zeichenfolge initialisieren. Hilft es? – Lino
Sie können die [Volley] (https://developer.android.com/training/volley/simple.html) verwenden, um eine Antwort von Google zu erhalten. Verwenden Sie danach die [GSON] (https://guides.codepath.com/android/Leveraging-the-Gson-Library), die Ihnen beim Analysieren des JSON die Arbeit erleichtern wird. –
Ja, es funktionierte, indem Antwort auf leere Zeichenfolge eingestellt wurde !! – Salim