Hallo liebe java-Gemeinde,
Mein Programm tut folgendes: Es liest eine Google-Such-Anfrage aus, bekommt einen JSON-String zurück, der ausgewertet weren sollen.
Das ist der (wichtige Teil des) Code:
Aufruf:
Alles toll, funktioniert.
Allerdings fand ich die Klasse ResponseData überflüssig. Dachte mir, das kann man ja auch so machen:
Vorher beinhaltet die Klasse ResponseData ja im Endeffekt auch nur die Liste, also kann man die doch direkt reinmachen.... dacht ich mir so. Beim "Umwandeln" kommt auch noch kein Fehler. Allerdings wenn ich die einzelnen Results ansprechen will, z.B. so:
Dann gibts eine JavaNullPointerExeption.
Kann mir das jemand erklären? Oder einfach sagen, wie man (und ob man) es ohne die Klasse ResponseData machen kann?!
Vielen Dank!
Mein Programm tut folgendes: Es liest eine Google-Such-Anfrage aus, bekommt einen JSON-String zurück, der ausgewertet weren sollen.
Das ist der (wichtige Teil des) Code:
Java:
public class GoogleResults {
private ResponseData responseData;
public ResponseData getResponseData() { return responseData; }
static class ResponseData
{
private List<Result> results;
public List<Result> getResults() { return results; }
}
static class Result
{
private String url;
private String title;
public String getUrl() { return url; }
public String getTitle() { return title; }
}
}
Aufruf:
Java:
GoogleResults results = new Gson().fromJson(ergebnis, GoogleResults.class);
String titel = results.getResponseData().getResults().get(i).getTitle();
Alles toll, funktioniert.
Allerdings fand ich die Klasse ResponseData überflüssig. Dachte mir, das kann man ja auch so machen:
Java:
public class GoogleResults {
private ArrayList<Result> results;
public ArrayList<Result> getResults() { return results; }
static class Result
{
private String url;
private String title;
public String getUrl() { return url; }
public String getTitle() { return title; }
}
Vorher beinhaltet die Klasse ResponseData ja im Endeffekt auch nur die Liste, also kann man die doch direkt reinmachen.... dacht ich mir so. Beim "Umwandeln" kommt auch noch kein Fehler. Allerdings wenn ich die einzelnen Results ansprechen will, z.B. so:
Java:
String titel = results.getResults().get(i).getTitle());
Dann gibts eine JavaNullPointerExeption.
Kann mir das jemand erklären? Oder einfach sagen, wie man (und ob man) es ohne die Klasse ResponseData machen kann?!
Vielen Dank!