2016-05-18 8 views
1

Ich mache eine Anmeldung. Wenn die Daten korrekt Rückkehr ist die folgende:Gson deserialize JSON verschiedene Typen (ANDROID)

{ 
    "a": 1, 
    "b":2, 
    "c":3 
} 

Wenn die Daten nicht korrekt Rückkehr ist die folgende:

{ 
    "status": false, 
    "error": { 
    .... etc 
    } 

} 

Wie sollte mein Modell ... ich Gson bin mit?.

Mein Code:

Gson gson = new Gson(); 
//As I can get two types of answers, as would my code? 
//Model model = gson.fromJson(my_json, Model.class); 
+2

Warum legen Sie nicht alle möglichen Felder in Ihr Modell und dann nur "Fehler" für "null"? – SqueezyMo

Antwort

1

Ich schlage vor, Sie auf diese Weise:

if(responsecode==200){ 
    Model model = gson.fromJson(my_json, Model.class); 
} 
else if (responsecode==error){ 
    AnotherModel anothermodel = gson.fromJson(my_json, AnotherModel.class); 
} 

Auch ist ein weiterer Weg, um alle mögliche Antwort in einer Pojo Klasse setzen, wie SqueezyMo in den Kommentaren gesagt:

{ 
    "a": 1, 
    "b":2, 
    "c":3, 
    "status": false, 
    "error": "wrong password" 
} 

Einfügen über JSON-Beispiel zu dieser Site: Json Schema 2 Pojo Und generieren Sie Ihre Pojo Klasse