Code formatieren / Ratgeber

JSON und XML umwandeln: Was bleibt beim Rückweg erhalten?

JSON und XML können ähnliche Datensätze tragen, organisieren Werte aber unterschiedlich. Die Abbildungsregeln verändern das Ergebnis.

Zwei Strukturen statt zweier Schreibweisen

JSON kennt Objekte, Arrays, Zeichenfolgen, Zahlen, Wahrheitswerte und null. XML enthält benannte Elemente, Attribute, Textknoten und einen geordneten Dokumentbaum. Es gibt keine allgemeine verlustfreie Regel, die beliebige JSON-Werte in beliebige XML-Dokumente überträgt. Ein Konverter muss den Wurzelnamen, Attribute und wiederholte Kindknoten festlegen. MultiVerto erwartet ein JSON-Objekt mit genau einer Eigenschaft als XML-Dokumentwurzel. Der Eigenschaftsname wird zum Elementnamen. Ein besonderes @attributes-Objekt sammelt Attribute, während Arrays wiederholte Elemente erzeugen. Das sind Werkzeugkonventionen, keine von XML festgelegten Namen. Klären Sie das Zielschema, bevor Sie produktive Daten so abbilden.

Ein Bestelldatensatz im Beispiel

Im eingebetteten Beispiel besitzt order ein @attributes-Objekt mit id als Zeichenfolge 7, ein item-Array mit pen und book sowie count als Zahl 2. Das JSON-zu-XML-Werkzeug erzeugt eine order-Wurzel, ein id-Attribut, zwei item-Elemente und ein count-Element. Das Gegenstück kann dieses einfache Dokument zurücklesen. Es fasst die wiederholten item-Elemente zu einem Array zusammen und stellt das Attribut unter @attributes dar. Elementinhalt wird aber als Text gelesen: count war anfangs die JSON-Zahl 2 und kommt als Zeichenfolge 2 zurück. Die sichtbare Ziffer stimmt, der Typ nicht. Vergleichen Sie Datenstrukturen statt nur die Darstellung.

Der Datensatz wird übertragen; der Zahlentyp ändert sich beim Rückweg.
  1. JSON: count ist Zahl 2; item ein Array
  2. XML: count ist Elementtext; zwei item-Elemente
  3. Zurück: count ist Text 2; Schema prüfen

Wo Informationen sich verändern

XML unterscheidet Attribute und Kind-Elemente, während ein JSON-Objekt zunächst nur Eigenschaften hat, sofern keine Abbildung bestimmte Namen reserviert. Wiederholte Namen können zu Arrays werden; ein einzelnes Vorkommen kann dagegen als Einzelwert erscheinen und Code mit fester Array-Erwartung überraschen. JSON null, Zahlengenauigkeit und Wahrheitswerte verlangen eigene Schemaregeln, da XML-Text allein diese Typen nicht verrät. Elementreihenfolge kann für XML-Empfänger wichtig sein, selbst wenn eine Anwendung JSON-Objekte als ungeordnet behandelt. MultiVerto weist Dokumente mit bedeutungstragendem Text neben Kind-Elementen bewusst zurück und unterstützt nicht jede XML-Konstruktion. Für komplexe gemischte Dokumente brauchen Sie andere Werkzeuge.

Abbildung zuerst entwerfen

Wenn Sie zwei Dienste verbinden, beschaffen Sie Beispieldokumente und das Zielschema. Entscheiden Sie, welches Feld Attribut oder Kind-Element ist und wie Arrays aussehen sollen. Legen Sie fest, wie Zahlen, Wahrheitswerte, leere Texte und fehlende Felder interpretiert werden. Prüfen Sie bei einer XML-Quelle Namensräume und gemischten Inhalt, bevor Sie einen einfachen Mapper verwenden; eventuell ist ein spezieller XML-Parser nötig. Bei JSON muss die Wurzel ein einzelnes benanntes Objekt sein und die Schlüssel müssen gültige Elementnamen für dieses Werkzeug ergeben. Testen Sie einen repräsentativen Fall in beide Richtungen und im eigentlichen Empfängersystem.

Den Rückweg gezielt prüfen

Kopieren Sie die Beispielausgabe in den verlinkten XML-zu-JSON-Konverter und vergleichen Sie die wiedergewonnenen Daten mit dem ursprünglichen JSON. Achten Sie auf Typen, Wiederholungen, Attributpositionen und leere Werte. Reduzieren Sie item auf ein Element und prüfen Sie, ob nachfolgende Software trotzdem ein Array erwartet. Verwenden Sie führende Nullen bei count nur, wenn Ihr Schema das erlaubt; Text und Zahl sind semantisch verschieden. Bewahren Sie das Original neben dem konvertierten Dokument auf. XML-Formatierung macht Verschachtelung lesbarer, heilt aber keine falsche Zuordnung. Erfolgreiches Parsen belegt Syntax, nicht die vom Geschäftsvorgang erwartete Bedeutung.

Umrechner ausprobieren

Wandeln Sie die Bestellung in XML um und testen Sie die Rückrichtung.

Überführen Sie ein JSON-Objekt mit einer Wurzel in XML.

Vollständigen Umrechner öffnen

Weitere Ratgeber

Umrechnungsratgeber

Ratgeber entdecken