2016-05-13 4 views
0

Ich versuche, ein POJO für die folgenden JSON erstellen.Erstellen Sie ein POJO für eine geschachtelte JSON für Retrofit

{ 
    "key1":"value1", 
    "key2":"value2", 
    "hashmap": 
    { 
    "1":"val" 
    "2":"val" 
    ... 
    "n":"val" 
    } 
} 

Nun ist die POJO ich versuchte, war

public class MyPOJO{ 
    @SerializedName{"key1"} 
    @Expose 
    private String key1; 

    @SerializedName{"key2"} 
    @Expose 
    private String key2; 

    @SerializedName{"hashmap"} 
    @Expose 
    private HashMap<String,String> hMap; 

} 

Das Problem ist, dass der hashmap nicht serialisiert zu werden. Es wird nur ignoriert, wenn die Klasse serialisiert wird.

So verwende ich die Klasse in Retrofit.

@POST("/endpoint/") 
void foo(@Body MyPojo, Callback<Response> callback); 

Ein Vorschlag, den ich fand, ist die Verwendung einer inneren Klasse anstelle der Hashmap. Aber meine Schlüssel sind dynamisch, ich kann keine Variablen für jeden Schlüssel definieren. Ich muss die Hashmap serialisieren lassen.

Antwort

0

http://www.jsonschema2pojo.org/ Nutzung dieser Website pojo von json erzeugen

+0

Funktioniert nicht, meine hashmap-Tasten sind dynamisch. Nicht behoben. Zu Ihrer Information, ich benutze jsonschema2pojo, um meine POJOs sonst zu erstellen. – Codevalley

0

Vielleicht sollten Sie einen Blick auf Nachrüst-Wandler und einen Konverter verwenden, welche Karten.

Oder verwenden Sie einen benutzerdefinierten Konverter.