So verwenden Sie es
- Fügen Sie das JSON in JSON ein. Sein einziger Eintrag auf oberster Ebene wird das Wurzelelement.
- Verwenden Sie das Präfix @ für Attribute, etwa @id, und #text für den Text eines Elements.
- Wählen Sie eine Einrückung oder Ohne Zeilenumbrüche (minimiert) für das kürzeste XML.
- Kopieren Sie das XML oder laden Sie es als converted.xml herunter.
Die Zuordnung Regel für Regel
XML kennt Elemente und Attribute, JSON kennt Objekte, Arrays und Werte. Die Zuordnung verbindet beides in einer Richtung. Die oberste Ebene ist ein Objekt mit einem Eintrag: Sein Name wird das Wurzelelement. Ein Objekt wird zu einem Element. Ein Eintrag, dessen Name mit @ beginnt, wird zu einem Attribut, und ein Eintrag namens #text wird zum Text des Elements. Jeder andere Eintrag wird zu einem Kindelement mit diesem Namen.
Ein Array ergibt je Eintrag ein Kindelement, alle mit dem Namen des Arrays. Eine Liste von Büchern wird also als wiederholte book-Elemente geschrieben. Eine Zeichenkette, eine Zahl oder true bzw. false wird zu Text. null und ein leeres Objekt werden zu einem leeren Element. Ein leeres Array hat keine XML-Form und wird weggelassen.
- Ein Name muss ein gültiger XML-Name sein: Ein Schlüssel wie first name mit Leerzeichen lässt sich nicht als Elementname schreiben.
- Ein Array in einem Array wird abgelehnt, weil seine Einträge keinen Elementnamen haben.
- Der Text einer Zahl wird so geschrieben, wie JavaScript sie schreibt. Eine Zahl mit mehr als 15 oder 16 signifikanten Ziffern kann Ziffern verlieren, so wie es auch beim Lesen von JSON geschieht.
Was die Zuordnung nicht erhalten kann
XML kennt keine Typen. Der Unterschied zwischen der Zahl 12 und dem Text "12" geht deshalb auf dem Rückweg verloren. Der Rückweg, XML in JSON, liest Text, der wie eine Zahl aussieht, als Zahl, solange die Umwandlung in Werte eingeschaltet ist. Ein leeres Objekt und null sehen in XML gleich aus, und ein Array mit einem Eintrag kommt als dieser Eintrag zurück. Das sind die Grenzen der Zuordnung, keine Fehler des Rechners.
Kommentare und Verarbeitungsanweisungen werden nicht geschrieben, denn JSON hat dafür keinen Platz. Ein Text in einem Element wird maskiert, sodass &, < und > im XML als Text erhalten bleiben.
Rechenbeispiel: der Standardkatalog
Das Standard-JSON hat einen Eintrag, catalog. Sein @version wird zum Attribut version des catalog-Elements, und sein Array book wird zu zwei book-Elementen. Jedes Buch übernimmt sein @id als Attribut id, und seine Schlüssel title, price und inStock werden zu Kindelementen. Der Preis null des zweiten Buches wird zum leeren Element price.
Mit zwei Leerzeichen und der Deklaration hat die Ausgabe acht Elemente: den Katalog, zwei Bücher, drei Kinder des ersten Buches und zwei des zweiten. Die Anzahl zeigt 8.
Häufig gestellte Fragen
Wie schreibe ich ein Attribut in JSON?
Geben Sie dem Schlüssel das Präfix @. Das Paar "@id": "1" wird zu id="1" am Element, das es enthält. Attributwerte müssen Text, Zahlen oder true bzw. false sein, keine Objekte oder Arrays.
Warum wird mein Array zu mehreren Elementen mit demselben Namen?
XML kennt kein Array. Jeder Eintrag des Arrays wird zu einem Element mit dem Namen des Arrays, in derselben Reihenfolge. So listet XML üblicherweise wiederholte Dinge wie Bücher oder Artikel.
Warum gibt es einen Fehler zur obersten Ebene?
Ein XML braucht genau ein Wurzelelement. Das JSON muss ein Objekt mit einem Eintrag sein, etwa {"catalog": {...}}. Eine Liste oder mehrere Einträge auf oberster Ebene ergeben kein gemeinsames Dokument.
Warum wird ein Schlüssel mit Leerzeichen abgelehnt?
Elementnamen in XML dürfen keine Leerzeichen enthalten. Benennen Sie den Schlüssel vor der Umwandlung um, etwa in first-name oder firstName.
Wird mein JSON an einen Server geschickt?
Nein. Die Umwandlung läuft in Ihrem Browser. Was Sie einfügen, wird nicht an einen Server gesendet und dort auch nicht gespeichert.
Quellen
- RFC 8259 (englisch): The JavaScript Object Notation (JSON) Data Interchange Format
- W3C (englisch): Extensible Markup Language (XML) 1.0, Fifth Edition
Zahlen und Text zuletzt geprüft: Dienstag, 10. November 2026.