2016-07-20 22 views
0

Folgende ist meine Forderung:JSON Konvertierung in XML mithilfe von XSLT

Anwendung A ist eine JSON basierend auf seiner Java Beans und Senden von meiner Anwendung zu schaffen. Ich habe diese JSON nehmen und es in XML zu konvertieren (XSD für dieses völlig anders als meine JSON Struktur ist) und

Lösung 1) ich zur Zeit an den Anwendungs ​​B. sendet diese json zu xml json bin mit konvertieren. org library.Then Apache-xalan und XSL-Stylesheet verwenden, ich dies von App B. als erforderlich, um xML-Format am Umwandlung

Lösung 2) dieses json Konvertieren in Java Bean (JB1) .Dann zum anderen diese JB1 Umwandlung Java Bean (JB2) gemäß der XML-Struktur, die von Anwendung B benötigt wird. Dann konvertieren Sie JB2 in XML für App B.

Lösung 3) Verwenden von Apache Xalan und Xerces zum Analysieren der Eingabe json und Erstellen der XML in Java selbst ohne Verwendung von XSL.

Welcher Ansatz ist besser (in der Einfachheit des Codes, Durchsatz)? Da JSON immer komplexer wird, ist es einfach, Lösung 1 zu verwenden? Bitte schlagen Sie vor, ob es einen anderen Ansatz als diese 3 gibt?

Antwort

3

XSLT 3.0 bietet eine integrierte json-to-xml() - Funktion. Sobald Sie den XML-Code haben, können Sie ihn einfach in das gewünschte Format umwandeln. Es ist in Saxon 9.7 (PE oder höher) implementiert und ich glaube an Exselt.

+0

Gleiches Q und A hier http://stackoverflow.com/questions/13007280/how-to-convert-json-to-xml-using-xslt – Darren

-2

JSON ist rein und einfach, "ein Kommunikation Protokoll." Mit anderen Worten: "Es existiert ausdrücklich (!), Um" willkürliche (JavaScript-) Datenstrukturen "zwischen einem Client und einem Host," über "dem HTTP (S) -Protokoll, zu übertragen.

Deshalb: „entsprechender Eingang zu XSLT“ „(!) Es ist nicht XML“ und deshalb darf niemals seine in Betracht gezogen werden

"Du sollst nicht Äpfel und Orangen mischen!"

Wenn Sie sich bewerben möchten "XSLT" Technologien zu einer "JSON-derived" -Eingang (die per Definition ist, "eine Datenstruktur ...") dann Sie Muss erste und " mit geeigneten Mitteln "diese Datenstruktur in XML umwandeln.

+0

In Lösung1, konvertiere ich JSON zu Xml und dann übergibt diese XML an XSLT Tehcnology .. Ist das die gleiche Methode, die Sie sagen? –

+0

Die Verwendung von "du sollst" scheint in einem Beitrag angemessen zu sein, der einen fast religiösen Ansatz zu vertreten scheint. Wir sind Ingenieure; Wenn wir ein 3cm langes Plastikrohr an einen 6 "Abfluss anschließen müssen, lass uns einfach den besten Weg finden, das Problem zu lösen, sage den Leuten nicht, dass du es nicht tun sollst. –

+0

Mein Punkt ist einfach: JSON ist kein XML und daher es hat überhaupt nichts mit XSLT zu tun. * Allerdings wird * ** XML ** manchmal als Transportformat verwendet und theoretisch * das * könnte direkt mit XSLT transformiert werden. –

0

Es gibt Beispielprogramme, die ein JSON-Dokument in ein entsprechendes XML-Dokument und zurück abbilden; Ich schrieb eine als Demo für Libertys Unterstützung von json-p (javax.json), wobei ich ein XML-Vokabular namens JinX (JSON in XML) verwendete. Dies könnte, falls gewünscht, als ein Pre-/Post-Prozessor verwendet werden, der um XSLT gewickelt ist.

Bessere Lösungen sind möglich - XSLT zum Beispiel für JSON-Bäume neu definieren - würde aber etwas mehr Arbeit erfordern.

1

Lösung 1: Ja. Dies ist der konventionelle und beste Pfad für einfaches und komplexes JSON und einfaches oder komplexes XML.

Lösung 2: Nein. Es gibt keinen Grund, Java Beans als Zwischenform einzuführen, besonders wenn Sie keine anderen Java Beans benötigen. Diese Option führt unnötigerweise zu einer Transformations- und Marshalling-Komplexität.

Lösung 3: Nein. Weder Xalan noch Xerces wurden entwickelt, um JSON zu analysieren; Sie wurden entwickelt, um XML zu analysieren.