araç köşesi

JSON in XML

JSON im Browser in XML umwandeln: Sie bestimmen die Wurzel, unzulässige Schlüssel werden angepasst und gemeldet

Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.

So funktioniert es

Fügen Sie das JSON in das linke Feld ein; das XML entsteht beim Tippen im rechten Feld. XML lässt genau ein oberstes Element zu, deshalb wird der gesamte Inhalt in den Wurzelnamen eingefasst, den Sie eintragen: 'root' genügt zum Ansehen, ein sprechender Name wie 'bestellung' oder 'artikel' macht die Ausgabe dagegen unmittelbar verwendbar. Objektschlüssel werden zu Elementnamen, Arrays zu wiederholten Elementen — entweder 'item' oder der Singular des umschließenden Feldes. Ein Elementname darf nicht mit einer Ziffer beginnen und keine Leerzeichen oder Klammern enthalten; ein Schlüssel wie '2024 bestellung' wird deshalb nicht stillschweigend zerstört, sondern zu '_2024_bestellung', und die Statuszeile nennt Ihnen jede angepasste Bezeichnung. Im Text werden die fünf Zeichen & < > " ' maskiert, null wird zum leeren Element (<x/>), eine leere Zeichenkette bleibt <x></x> — beides ist nicht dasselbe. Ist das JSON fehlerhaft, erfahren Sie Zeile und Spalte der Fundstelle statt einer englischen Fehlermeldung. Die Ausgabe kopieren Sie mit einem Klick oder laden sie als .xml-Datei herunter.

Dieses Werkzeug ist auch als json in xml umwandeln, json zu xml konvertieren, json datei in xml umwandeln, xml aus json erzeugen, json xml converter online bekannt.

Was ist XML-Elementname?

Der Elementname ist das Wort zwischen den spitzen Klammern, das eine Angabe benennt: In <preis> lautet der Name 'preis'. Die Regeln sind eng und nicht verhandelbar. Ein Name beginnt mit einem Buchstaben oder Unterstrich, enthält kein Leerzeichen, darf nicht mit einer Ziffer anfangen und keine Klammern, Schrägstriche oder Prozentzeichen tragen. Ziffern, Bindestriche und Punkte sind im weiteren Verlauf erlaubt, 'preis-2024' ist also gültig, '2024-preis' nicht. Buchstaben aller Alphabete sind zugelassen, weshalb Umlaute und ß unangetastet bleiben. Genau diese Regel zwingt jeden Konverter dazu, Schlüssel aus Tabellen umzuschreiben.

Was ist Wurzelelement?

Das Wurzelelement ist das einzige äußerste Element eines XML-Dokuments; alles Übrige steht darin. Die Ein-Wurzel-Regel klingt formal, hat aber alltägliche Folgen: Zwei XML-Bruchstücke lassen sich nicht einfach zu einer Datei aneinanderhängen, und eine nackte Liste ist kein gültiges Dokument. JSON kennt diese Einschränkung nicht, weshalb eine Umwandlung die Einfassung erst hinzufügen muss. Der Name wiegt schwerer, als er aussieht: Importschnittstellen suchen die Wurzel meist namentlich — ein Rechnungsaustausch erwartet <rechnung>, ein Produktfeed <artikel>, und eine Datei mit <root> wird oft abgewiesen, bevor der Inhalt gelesen wird.

Wo zeigt sich der Unterschied zwischen JSON und XML bei dieser Umwandlung?

Er zeigt sich in genau drei Entscheidungen. Erstens die Wurzel: JSON darf überall beginnen, XML verlangt ein oberstes Element — deshalb fragt die Seite nach einem Namen. Zweitens die Listen: JSON markiert sie mit eckigen Klammern, XML drückt sie durch wiederholte Geschwisterelemente aus, also muss jemand deren Namen festlegen, und diese Wahl entscheidet, ob die Datei sich gut lesen oder gut durchlaufen lässt. Drittens die Typen: JSON unterscheidet Zahl, Zeichenkette und Wahrheitswert, XML behandelt alles als Text und überlässt die Typisierung einem externen Schema — der Unterschied zwischen 1024 und "1024" geht in dieser Richtung verloren. Dafür gibt XML etwas zurück, das JSON fehlt: Attribute, Namensräume und Schemaprüfung. Deshalb verlangen Behörden und ERP-Systeme weiterhin XML, während Web-Schnittstellen auf JSON umgestiegen sind.

Warum Sie einen Wurzelnamen eintragen müssen

JSON darf mit einem Objekt oder einem Array beginnen, beides ist ein vollständiges Dokument. XML kennt diese Freiheit nicht: Jedes Dokument enthält genau ein äußerstes Element, ein zweites auf gleicher Ebene macht die Datei ungültig. Deshalb wird Ihr Inhalt immer eingefasst — und deshalb entscheiden Sie über den Namen der Einfassung.

Wählen Sie den Namen, den die Gegenstelle erwartet. Sucht eine Importroutine nach <rechnungen>, tragen Sie rechnungen ein. Ihr Eintrag durchläuft dieselben Namensregeln wie die Schlüssel: aus 'liste der artikel' wird 'liste_der_artikel', denn Leerzeichen gibt es in Elementnamen nicht.

Die Array-Falle: XML kennt keinen Listentyp

In JSON kündigen eckige Klammern eine Liste an. XML hat dieses Zeichen nicht; eine Liste entsteht dort erst dadurch, dass mehrere Geschwisterelemente denselben Namen tragen. Die Umwandlung muss also eine Frage beantworten, die sich in JSON nie stellt: Wie heißen diese Geschwister?

Beide Konventionen sind verbreitet. Ein festes 'item' sieht in jeder Liste gleich aus und lässt sich im Code bequem durchlaufen; der Singular des umschließenden Feldes liest sich für Menschen besser ('rechnungen' enthält 'rechnung'). Lässt sich kein Singular bilden — etwa bei 'data' —, fällt das Werkzeug auf 'item' zurück, denn <data><data> führt jeden Leser in die Irre.

Eine Folge sollten Sie einplanen: Wandeln Sie ein Array mit einem einzigen Eintrag um und lesen es zurück, erhalten Sie ein Objekt statt einer Liste. Kein XML-Dokument sagt von sich aus 'hier steht immer eine Liste'; das leistet nur ein Schema (XSD), und ein solches wird hier nicht erzeugt.

Unzulässige Schlüssel werden angepasst, nicht stillschweigend zerstört

Für XML-Elementnamen gelten enge Regeln, JSON-Schlüssel verletzen sie regelmäßig. Das Werkzeug passt den Namen an und meldet anschließend, wie viele Namen betroffen waren und was aus jedem wurde.

  • Name beginnt mit einer Ziffer → Unterstrich davor: aus '2024' wird '_2024' (die Ziffer zu streichen würde Daten verlieren)
  • Leerzeichen, Klammern, Schrägstriche und andere unzulässige Zeichen → Unterstrich: aus 'preis (EUR)' wird 'preis__EUR_'
  • Auch der Doppelpunkt wird zum Unterstrich, damit die Ausgabe nicht auf ein nie deklariertes Namensraum-Präfix verweist
  • Namen, die mit 'xml' beginnen, sind im Standard reserviert → ein Unterstrich wird vorangestellt
  • Ein leerer Schlüssel ('') erhält den Namen 'feld'; ein leerer Wurzelname wird zu 'root'
  • Umlaute und ß bleiben erhalten: 'größe' ist ein gültiger Elementname und wird nicht angetastet

Was dieses Werkzeug nicht erzeugt

Die Umwandlung bildet das Datenmodell von JSON auf Elemente ab. XML-Strukturen ohne JSON-Entsprechung werden nicht erfunden:

  • Keine Attribute: Jeder Schlüssel wird ein Element; eine Ausgabe wie <position artikelnr="DE-11"> müssen Sie von Hand nachtragen
  • Keine Namensraum-Deklaration; verlangt Ihr Zielformat xmlns, ergänzen Sie es selbst im Wurzelelement
  • Kein Schema und keine DTD: Die Ausgabe ist wohlgeformtes XML, ob sie gegen ein bestimmtes Schema gültig ist, steht auf einem anderen Blatt
  • Zahlen und Wahrheitswerte werden als Text geschrieben, denn XML trägt keine Typinformation — true und "true" unterscheidet nur ein Schema
  • Steuerzeichen, die XML grundsätzlich verbietet, werden entfernt; die Anzahl steht in der Statuszeile

Häufige Fragen

Warum werden einzelne JSON-Schlüssel umbenannt?

Ein XML-Elementname darf nicht mit einer Ziffer beginnen und keine Leerzeichen oder gängigen Satzzeichen enthalten. Unverändert übernommen ergäbe ein solcher Schlüssel eine Datei, die kein Parser liest. Das Werkzeug passt den Namen an und listet jede Änderung in der Statuszeile auf.

Kann ich statt Elementen Attribute erzeugen?

Nein, jeder Schlüssel wird zu einem Element. JSON kennt keine Attribute, deshalb sagt Ihnen nichts in den Daten, welches Feld eines werden müsste — das weiß nur das Zielschema. Werden Attribute verlangt, laden Sie die Ausgabe herunter und bearbeiten die betreffenden Zeilen.

Warum wird aus einem einelementigen Array ein einzelnes Objekt?

In XML sehen ein einzelnes Element und eine Liste mit einem Eintrag identisch aus; unterscheiden lässt sie nur ein Schema (XSD), das hier nicht erzeugt wird. Muss ein Feld immer eine Liste sein, prüfen Sie den Einzelfall in der lesenden Anwendung.

Werden meine Daten hochgeladen?

Nein. Das Einlesen und die XML-Erzeugung laufen vollständig in Ihrem Browser. Kundendaten, Bestelllisten oder API-Antworten verlassen diese Seite nicht und werden nirgends gespeichert.