JSON und XML ineinander umwandeln

JSON in XML macht aus einem JSON-Objekt oder -Array ein XML-Dokument, XML in JSON liest ein XML-Dokument als JSON. Beide Richtungen laufen in der Seite, nichts Eingefügtes wird hochgeladen, und das Ergebnis erscheint im Bereich unter den Schaltflächen.

Die beiden Beispiel-Schaltflächen laden denselben kleinen Katalog in beiden Formaten: aus dem JSON-Beispiel wird das XML-Beispiel, und aus diesem XML-Beispiel wird wieder das JSON-Beispiel.

  1. Laden Sie ein Beispiel mit XML-Beispiel oder Beispiel JSON, oder fügen Sie ein eigenes JSON-Objekt, JSON-Array oder XML-Dokument in das Textfeld ein.
  2. Drücken Sie JSON in XML oder XML in JSON. Die Statuszeile über dem Ergebnis nennt das Wurzelelement und die Anzahl von Elementen und Attributen – oder erklärt, warum nichts geschrieben wurde.
  3. Lässt sich die Eingabe nicht lesen, nennt die Meldung bei JSON das Zeichen und bei XML Zeile und Spalte; das vorherige Ergebnis wird gelöscht, damit nichts Veraltetes stehen bleibt.
  4. JSON formatieren rückt die JSON-Ausgabe mit zwei Leerzeichen ein, ohne Häkchen bleibt sie eine kompakte Zeile; die XML-Ausgabe ist immer eingerückt. Ergebnis kopieren übernimmt den Text, Leeren räumt das Textfeld.

Was die Umwandlung mit Ihren Daten macht

Wie aus JSON XML wird

Das Dokument erhält genau ein Wurzelelement. Ein einzelner Schlüssel der obersten Ebene wird dieses Element – {"user":{"name":"Ann"}} wird zu <user><name>Ann</name></user> –, mehrere Schlüssel, ein Array auf oberster Ebene und ein einzelner Schlüssel mit einem Array darin werden dagegen in <root> verpackt; Array-Einträge ohne eigenen Namen werden als <item> geschrieben.

Innerhalb eines Elements wird ein Schlüssel zu einem Kindelement, und ein Array wiederholt sein Element einmal pro Eintrag. Ein Schlüssel, der mit - beginnt, wird zum Attribut, #text wird zum Text des Elements: {"a":{"-x":"1","#text":"hi"}} wird zu <a x="1">hi</a> – dieselbe Form, die die Richtung XML in JSON erzeugt, weshalb sich beide Richtungen verketten lassen. null und "" werden zu <name />.

Namen werden repariert statt fehlerhaft ausgegeben: Leerzeichen, < oder & in einem Schlüssel und ein Schlüssel, der mit einer Ziffer beginnt, werden mit Unterstrich geschrieben; die Statuszeile nennt die Anzahl geänderter Namen. Markup in einem Wert wird maskiert, und Anführungszeichen, Zeilenumbrüche und Tabulatoren in einem Attributwert werden als &quot;, &#10; und &#9; geschrieben, damit das Dokument gültig bleibt.

Wie aus XML JSON wird

Attribute kommen mit dem Präfix - zurück, ein Element mit nur Text wird zur Zeichenkette, ein Element mit Kindern zum Objekt, und ein Name, der mehrfach vorkommt, wird zum Array: <r><i>1</i><i>2</i></r> wird zu {"r":{"i":["1","2"]}}, ein einzelnes <i> bleibt Zeichenkette. XML kennt keine Typen, Werte kommen also als Zeichenketten an: 24.90 in XML ist "24.90" in JSON.

Ein Element ohne Inhalt wird zur leeren Zeichenkette, Text in einem Element bleibt genau erhalten, samt Leerzeichen und Zeilenumbrüchen, und die Einrückung zwischen Elementen wird ignoriert. Kommentare entfallen, CDATA-Abschnitte werden als Text gelesen, und Text neben Kindelementen wird in einem Schlüssel #text gesammelt.

Datenschutz, Größe und Grenzen

Die Umwandlung läuft in der Seite: Auch mit blockiertem Netzwerk funktioniert sie und sendet keine Anfrage, ein Dokument, das Ihren Rechner nicht verlassen darf, lässt sich also hier umwandeln. Ergebnisse bis 120.000 Zeichen werden farbig hervorgehoben, größere als reiner Text ausgegeben: 1.000 Zeilen (45 KB JSON zu 99 KB XML) brauchen mit Hervorhebung etwa 0,8 Sekunden, 5.000 Zeilen (233 KB zu 503 KB und zurück zu 618 KB JSON) zusammen etwa 0,2 Sekunden, gemessen in Chrome auf dieser Seite.

Dies ist ein Formatkonverter, kein Schema-Werkzeug: keine XSD- oder DTD-Prüfung, keine Namespace-Behandlung (ein Doppelpunkt im Namen wird als Unterstrich geschrieben) und keine Typerkennung. Tausendfach verschachtelte Dokumente werden mit einer Meldung abgelehnt, statt ein halbes Dokument stehen zu lassen.

Zuletzt verwendet: