2016-12-09 1 views
-2

In meiner App, erhalte ich und parse einen JSON-Stream von einer Wordpress (RESP API v2) -Website.Android: Behandeln Sie verschiedene Arten von Wert mit GSON

ich benutze, OKHTTP, NACHRÜST mit Gson Wandler zu lesen und den Strom in meine Objekte zu analysieren.

Normalerweise erwartet mein GSON-Konverter ein Objekt, aber aufgrund einer kürzlichen Aktualisierung gibt mir die Website einen booleschen Wert (falsch). Der Wert ist noch nicht festgelegt.

Das ist meine Frage: "Kann ich verschiedene Arten von Werten für den gleichen Variablennamen mit GSON Serialize behandeln und wie?"

Vielen Dank!


Das ist mein Ziel:

public static class StageProfileImage { 





     ////////////////////////////////////////////////// 
     // Variables 
     ////////////////////////////////////////////////// 
     @SerializedName("url") 
     private String stageProfileImageUri; 
     ////////////////////////////////////////////////// 





     ////////////////////////////////////////////////// 
     // Setters & Getters 
     ////////////////////////////////////////////////// 
     public String getStageProfileImageUri() { 
      return stageProfileImageUri; 
     } 
     public void setStageProfilUri(String stageProfileImageUri) { 
      this.stageProfileImageUri = stageProfileImageUri; 
     } 
     ///////////////////////////////////////////// 





    } 

Wichtig: ich den Strom nicht ändern können.

Antwort

0

Versuch @SerializedName (value = "url", alternativer = { "AlternativSchlüssel1", "altkey2"})

Edit: Geändert zu einem allgemeineren Beispiel.

+0

Wenn Sie mehrere Werte für denselben Schlüssel analysieren möchten. Sie können entweder einen benutzerdefinierten gson TypeAdapter verwenden oder ResponseBody als Antwort zurückgeben und selbst analysieren. – Ashish

0

Danke aber es ist nicht mein Problem. In der Tat kann Gson nicht den Strom von der Website konvertieren, weil statt dessen:

"stage_profile_image" : { 
    ... 
} 

Mein Strom geben Sie mir, dass:

"stage_profile_image" : false 

Im ersten, erhalte ich ein Objekt, sondern in der zweitens bekomme ich einen booleschen Wert, der nicht die Art von Wert ist, den er erwartet, und GSON kann die Umwandlung nicht durchführen.

Verwandte Themen