2016-12-02 5 views
0

Ich weiß, dass diese Frage sehr oft aufgeworfen wurde, aber bis jetzt habe ich keine Antwort gefunden, die mir geholfen hat, mein Problem zu lösen (ich habe einige davon ausprobiert).Gson verschachtelte Objekte in verschachtelten Objekten

Grundsätzlich bekomme ich eine JSON-Antwort von dieser API http://api.tvmaze.com/singlesearch/shows?q=izombie&embed=episodes und es gibt ziemlich viele verschachtelte Objekte in verschachtelten Objekten. Wenn ich es beispielsweise mit einem JSON-Online-Viewer ansehe, bekomme ich folgende Ausgabe: Was für mich interessant ist, ist der untere Teil. Um genauer zu sein, das "Episoden" -Objekt. Bisher kann ich grundlegende Informationen aus dem JSON-Array (ID, URL, Name, Typ, ...) extrahieren, aber die "Triple (_embedded> Episoden> ...)" verschachtelten Objekte nicht bekommen.

Der Code der JSON-Antwort zu analysieren:

public void parseJSON(String jsonResponse) throws IOException { 
    GsonBuilder builder = new GsonBuilder(); 
    Gson gson = builder.create(); 
    Show show = gson.fromJson(jsonResponse, Show.class); 
    System.out.println(show.getID() + "\n" + show.getName() + "\n" + show.getStatus()); 
} 

The Show Klasse:

public class Show { 
    private int id; 
    private String name; 
    private String status; 


    public int getID() { 
     return id; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getStatus() { 
     return status; 
    } 
} 

So wie würde ich alle erhalten diese Informationen von 0 bis zum Ende an der Episoden Array? Jede Hilfe wird sehr geschätzt!

Auf einer seitlichen Anmerkung: Ich erhalte die jsonResponse mit einer Methode namens „readUrl“ aber es ist ziemlich viel im Moment irrelevant.

Antwort

1

GSON behandelt eingebettete Objekte einwandfrei. Sagen wir haben eine Klasse Foo mit einer Bar haben eingebettet, dann würden Sie nur

tun
class Foo { 
    public Bar bar; 
} 

und es wird für Sie analysieren bar. Und das funktioniert rekursiv. Wenn Sie ein Array benötigen, verwenden Sie List<Bar> und es analysiert das Array.

+0

Wenn Sie Zugriff auf Bar hatten, könnten Sie einen Bezug zu Foo daraus gewinnen? – silversunhunter

Verwandte Themen