Marshalling von Java-Objekten (ohne @XmlRootElement) , JSON per Jettison
Habe ich getan das marshalling von JAXB-Objekt (enthält @XmlRootElement) , JSON mit über Bord werfen. Aber ich kann nicht konvertieren ein einfaches java-Objekt, das hat keine Annotationen wie @XmlRootElement zu JSON. Ich würde gerne wissen, "Ist es zwingend, dass die @XmlRootElement zu marshall ein Objekt nach JSON?"
Ich bin immer folgende Exception wenn ich versuche zu marshall das java-Objekt zu Json
com.sun.istack.SAXException2: unable to marshal type "simpleDetail" as an element because it is missing an @XmlRootElement annotation
Was könnte das Problem sein?
Sieht aus wie Sie benötigen könnten, die @XmlRootElement, zumindest laut Fehlermeldung. Aber man könnte XStream's JSON-Serialisierung zu umgehen.
Danke für die Antwort. Ja, wir können es tun., Wenn wir XStream oder GSON. Aber ich muss an über Bord werfen nur um es zu tun. Ist es hier nicht möglich?
Danke für die Antwort. Ja, wir können es tun., Wenn wir XStream oder GSON. Aber ich muss an über Bord werfen nur um es zu tun. Ist es hier nicht möglich?
InformationsquelleAutor Arun | 2013-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis: ich bin der EclipseLink JAXB (MOXy) führen und ein Mitglied der JAXB (JSR-222) expert group.
Den JAXB (JSR-222) Spezifikation nicht für JSON-Bindung. Anstelle der Verwendung einer JAXB-Implementierung mit Jettison-Bibliothek, die Sie nutzen könnten EclipseLink JAXB (MOXy) , bietet eine systemeigene JSON-Bindung. Unten ist ein Beispiel.
JAVA-MODELL
Foo
Bar
jaxb.Eigenschaften
Angeben, MOXy, wie Ihr JAXB-provider Sie brauchen, um eine Datei namens
jaxb.properties
im gleichen Paket wie Ihr domain-Modell mit dem folgenden Eintrag (siehe: http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html):DEMO-CODE
Demo
MOXy erfordert nicht die
@XmlRootElement
annotation, und Sie können dieJSON_INCLUDE_ROOT
Eigenschaft zu sagen, MOXy zu ignorieren, das Vorhandensein von@XmlRootElement
Anmerkungen. Wenn das root-element wird ignoriert, müssen Sie eineunmarshal
- Methode mit einem class-parameter eingeben, mit der Sie unmarshalling.Eingang.json/Ausgabe
Sehen wir, dass kein root-element vorhanden ist, in der Eingabe oder Ausgabe.
ZUSÄTZLICHE INFORMATIONEN
Ich bin mir nicht sicher, ob es möglich ist mit über Bord werfen. Ich habe bearbeitet Ihre Fragen Titel und tags zu zählen über Bord werfen, um zu versuchen und ziehen die Antwort, die Sie suchen.
Thnk u Blaise : ich habe gelesen, das blog.bdoughan.com/2011/04/jaxb-and-json-via-jettison.html . Hier ist es fertig mit über Bord werfen
Ich bin mir nicht sicher, ob Sie bemerkt, aber dieser Beitrag ist aus meinem blog.
Ja 🙂 es ist von Ihrem blog. Ich mag, um zu bestätigen, ob es rein mit über Bord werfen?
InformationsquelleAutor bdoughan
Gerade gelesen, dass
@XmlRootElement
ist nicht immer notwendig. Bitte Lesen Sie dieser blog, im unteren Teil finden Sie wie es gemacht wird, ohne@XmlRootElement
.Auch durch die Antworten in der post Keine @XmlRootElement generiert JAXB.
InformationsquelleAutor Jeevan Patil