Meine vorherige Frage dazu kam nicht wirklich, und vielleicht fragte ich nicht das Richtige oder es war zu detailliert.Deserialize JSON-Klasse zu Java-Klasse mit anderen Namen
Meine grundlegende Frage ist jetzt, wie kann ich ein JSON-Objekt mit einem Klassennamen zu einem Java-Objekt mit einem anderen Klassennamen deserialisieren?
Zum Beispiel ist die JSON-Klasse der Server sendet/erwartet ist "18" (ich habe keine Kontrolle darüber). Meine Java-Klasse kann nicht "18" sein, also ist es "_18".
Einfach das neue Gson(). FromJson() zu tun, hat nicht geholfen, auch mit anderen Benennungsrichtlinien; Das Objekt _18 ist immer null. Seitdem habe ich über Typ-Adapter und verschiedene Anmerkungen gelesen, aber ich weiß noch nicht, wie ich das angehen soll. Die Methode, die am sinnvollsten erschien, @SerializedName, kann anscheinend nicht für die Klasse selbst verwendet werden, sondern nur für Feldmitglieder.
Wie kann ich ein JSON-Objekt mit einer Klasse namens 18 zu einer Java-Klasse namens _18 deserialisieren (oder besser, wenn es möglich ist, kann ich der Klasse einen echten Namen geben)?
Beispiel JSON, auf Anfrage:
"18": {
"field1": "value1",
"field2": "value2",
"field3": "value3"
}
Können Sie eine Probe des JSON schreiben Sie es zu tun? –
Beispiel für JSON, das in Bearbeitung hinzugefügt wurde. – sorinev
Verwenden Sie eine Map: "18" ist der Schlüssel der Map. –