GSON - Liste mit Interfaces

AntiMuffin

Bekanntes Mitglied
Hallo,
es geht zwar nicht um XML, aber um Json und dachte das passt am besten in dieses Forum. Ich schreibe gerade an einer Anwendung welche Daten mithilfe Json vom Client zum Server schicken soll. Dabei sollen Objekte wie Linien, Quadrate, etc. gesendet werden welche alle das Interface Renderable implementieren und somit die Methode render (). Ich möchte also irgendwelche Renderable Objekte senden. Dazu habe ich die Klasse RenderData welche eine List von Renderable enthält und noch andere Informationen. Nun parse ich diese ein solches RenderData Objekt mithilfe von der Gson Bibliothek zu einem Json String und übertrage die Daten zum Server welcher nun mit hilfe von Gson versucht es wieder in Objekte umzuwandeln.

Hier entsteht nun das Problem!
Da Gson nur weiß das es sich um Renderable Objekte handelt (Und nicht um genau welches, wie zB das es eine Linie darstellen soll). Aus diesem Grund kann Gson auch keine Insanzen erstellen. Gibt es hierfür einen Standard Weg um das Problem zu behandeln? - Ich habe schon im Internet nachgesehen und diesen "TypeAdapter" gefunden, ist die der Richtige Ansatz?

Gruß,
AntiMuffin
 
Zuletzt bearbeitet:

stg

Top Contributor
Ich befürchte fast, dass deine Wahl von GSON hier nicht zielführend ist.

Bei der "Serialisierung" deiner Renderable-Objekte gehen die Informationen über die konkrete Implementierung verloren. Genau die brauchst du aber ja, um entscheiden zu können, welchen Typ dein Deserialisiertes Objekt am Ende wieder haben soll. Das gleiche Problem bekommst du übrigens auch bei abstrakten Klassen ...
 

dzim

Top Contributor
Eigentlich auch doof, dass man dadurch eine extra Property im JSON erhält (im Beispiel halt mit dem Namen "type"). Aber ich kenn das auch schon von anderen ORM: SimpleXML. Brauchte ich mal auf Android mit einem ähnlichen Szenario. Da musste ich zwar nicht gross was für machen, aber es hat mir dann immer noch eine zusätzliches Attribut mit dem Namen "class" generiert, damit er dann bei deserialisieren wieder wusste, was für eine Implementierung da zu nehmen ist...
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
F gson nicht in UTF8 XML & JSON 3
W GSON Enum Deserialisierung XML & JSON 3
K JSON mit GSON nutzen XML & JSON 4
K GSON-Parser XML & JSON 6
4a61766120617274697374 gson Propleme bei Stringproperty XML & JSON 3
J JSON zu Java mit der GSON Google API XML & JSON 0
M Gson Enum parsing XML & JSON 0
W Json von URL Lesen (mit Gson Library) XML & JSON 3
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
L JAXB - Generischen Wert mit Liste belegen XML & JSON 1
D XML Liste erstellen XML & JSON 9
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
H Liste voller Objekte und Werte in XML via XStream XML & JSON 3
M Liste in Baumstruktur einlesen XML & JSON 4
C root.getChildren() - Liste sortieren - ClassCastException XML & JSON 2
W Element Liste in Root XML & JSON 5
G Xml Elemente in eine Liste abspeichern! XML & JSON 2
Joreyk Jackson XML mit interfaces XML & JSON 17
A Interfaces bei StAX XML & JSON 2
L JAXB und Interfaces XML & JSON 4
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
HombreDelMundo JAXB can't handle interfaces XML & JSON 4
turmaline JAXB can't handle interfaces XML & JSON 20
A Jaxb und Interfaces XML & JSON 12
P Interfaces mit XML & Co beschreiben? XML & JSON 8

Ähnliche Java Themen

Neue Themen


Oben