Werkzeuge
Leitfäden

JSON ↔ XML Konverter

JSON

Konvertiert zwischen JSON und XML. Verschachtelte Objekte werden unter einem konfigurierbaren Wurzelelement eingebettet.

100 % clientseitig Ohne Backend
Eingabe
Ausgabe
Auf dieser Seite

Was ist ein JSON-↔-XML-Konverter?#

JSON und XML sind zwei verschiedene Arten, strukturierte Daten niederzuschreiben, und sie sind auf Syntax-Ebene nicht austauschbar — das eine verwendet geschweifte und eckige Klammern, das andere Tags in spitzen Klammern. Ein Konverter dazwischen „komprimiert“ oder „kodiert“ nicht; er drückt denselben Wertebaum in der jeweils anderen Notation aus, sodass ein System, das nur XML spricht, Daten konsumieren kann, die als JSON ankamen, und umgekehrt.

Die Zuordnung ist meist mechanisch, hat aber zwei bekannte raue Kanten. Erstens erfordert XML genau ein Wurzel-Element, das alles umschließt, während JSON problemlos eine Ebene der obersten Stufe als bloßes Objekt oder Array zulässt — der Weg von JSON zu XML bedeutet also immer, einen Namen für diesen äußeren Wrapper zu wählen. Zweitens können XML-Elemente Attribute tragen (<a id="7">), für die JSON kein direktes Gegenstück hat; die gängige Konvention ist, sie unter @-vorangestellten Schlüsseln abzulegen, und Text, der neben Attributen steht, unter einem #text-Schlüssel.

Diese Seite konvertiert im Browser in beide Richtungen: JSON zu XML (indem Ihr Wert unter einem von Ihnen benannten Wurzel-Element eingebettet wird) und XML zu JSON (indem Attribute in @-Schlüssel ausgepackt werden und standardmäßig das äußere Wurzel-Element entfernt wird, sodass Sie den inneren Wert zurückerhalten).

Verwendung#

  1. Wählen Sie die Richtung mit dem Umschalter JSON → XML / XML → JSON oben links auf der Werkzeugleiste.
  2. Tippen Sie in die Eingabe-Fläche links oder fügen Sie ein.
    • JSON → XML erwartet gültiges JSON. Jeder Wert der obersten Stufe wird unter dem Wurzel-Element eingebettet.
    • XML → JSON erwartet ein wohlgeformtes XML-Dokument. Das einzelne äußere Element wird automatisch ausgepackt, sodass Sie seinen inneren Inhalt als JSON erhalten.
  3. Setzen Sie im Modus JSON → XML das Feld Wurzelelement (Standard root), um das Wrapper-Tag zu benennen — zum Beispiel user, feed, response. XML schreibt ein einzelnes Wurzel-Element vor, deshalb ist dieser Name immer erforderlich.
  4. Das Ergebnis erscheint live in der Ausgabe-Fläche. Klicken Sie auf Kopieren, um es zu übernehmen.
  5. Beispiel lädt ein kleines, zur aktuellen Richtung passendes Dokument; Leeren setzt beide Flächen zurück.

Eckpunkte#

  • Beide Richtungen, ein Werkzeug. Ein einzelner Umschalter schaltet zwischen JSON-zu-XML und XML-zu-JSON um, wobei die Eingabe-Fläche automatisch umgestellt wird.
  • Konfigurierbares Wurzel-Element. Da XML nicht ohne ein einzelnes äußeres Element existieren kann, benennen Sie den Wrapper; der Konverter übernimmt das Einbetten für jede JSON-Wurzelform.
  • Korrekte XML-Deklaration. Die JSON-zu-XML-Ausgabe beginnt mit dem Standard-Prolog <?xml version="1.0" encoding="UTF-8"?> und wird mit Zweier-Einrückung formatiert.
  • Attribute round-trip-fähig. XML-zu-JSON bewahrt Element-Attribute unter @-vorangestellten Schlüsseln, und Text, der neben Attributen steht, wird unter #text gehalten, sodass nichts stillschweigend verworfen wird.
  • Zahlenbewusstes Parsing. XML besteht nur aus Text; der Parser wandelt zahlenartige Elementwerte zurück in JSON-Zahlen um (sodass <age>36</age> zu 36 wird, nicht zu "36").

Konkretes Beispiel#

JSON → XML#

Mit der Richtung auf JSON → XML und dem Wurzel-Element root laden Sie Beispiel:

{
  "name": "Ada",
  "age": 36,
  "skills": ["math", "logic"]
}

Der Konverter bettet alles unter <root> ein und entfaltet das Array so, wie XML es braucht — jeder Eintrag wird zu einem eigenen Element mit demselben Tag:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name>Ada</name>
  <age>36</age>
  <skills>math</skills>
  <skills>logic</skills>
</root>

Ändern Sie das Feld Wurzelelement auf person, so wird der Wrapper stattdessen zu <person> / </person> — die innere Struktur bleibt unangetastet.

XML → JSON#

Wechseln Sie zu XML → JSON und laden Sie Beispiel:

<?xml version="1.0"?>
<root><name>Ada</name><age>36</age></root>

Das äußere <root> wird entfernt, und die inneren Elemente werden zu JSON-Eigenschaften, wobei 36 als Zahl erkannt wird:

{
  "name": "Ada",
  "age": 36
}

Attribute bleiben ebenfalls erhalten. Ein Element wie <a id="7">label</a> erzeugt { "@id": "7", "#text": "label" } — das Attribut lebt unter @id, der Text unter #text, und keines geht verloren.

FAQ#

Warum wird mein JSON-Array zu wiederholten XML-Elementen statt zu einem Wrapper mit Einträgen darin?#

So stellt XML eine Liste dar: Es gibt kein „Array“-Konstrukt, deshalb muss jeder Eintrag ein eigenes Element mit demselben Tag-Namen sein. Ein JSON-Array ["math", "logic"] unter dem Schlüssel skills wird daher zu zwei gleichgeordneten <skills>-Elementen, nicht zu einem einzelnen <skills>, das Kind-Elemente enthält. Das ist die Standard-, schema-freundliche Zuordnung — XML-Verbraucher erwarten das so.

Wohin ist in XML → JSON mein äußeres Element verschwunden?#

Der Konverter packt die einzelne Wurzel automatisch aus. XML erzwingt genau ein Element der obersten Stufe, doch in JSON ist dieser Wrapper meist überflüssig — <root><name>Ada</name></root> trägt in root keine Information, die JSON braäuchte. Das Entfernen liefert Ihnen den bedeutsamen inneren Wert direkt. Wenn Sie die Wurzel wirklich erhalten möchten, behalten Sie sie als normales Element und greifen über den Namen darauf zu.

Warum ist 36 im Ergebnis eine Zahl und kein String?#

XML hat keinen eigenen Zahlentyp — alles zwischen den Tags ist Text. Der Parser wendet eine Zahlenumwandlung an, sodass ein Element, dessen Text wie eine Zahl aussieht (36, 3.14), als JSON-Zahl zurückkommt. Das ist für typische Daten bequem, bedeutet aber auch, dass ein Wert wie ein Produktcode <code>007</code> seine führenden Nullen verliert — speichern Sie solche Werte als Attribute oder akzeptieren Sie sie als Strings.

Kann es jedes XML-Dokument konvertieren?#

Wohlgeformtes XML ja, einschließlich Namensräumen in Tags, Attributen, selbstschließenden Elementen und Deklarationen. Es löst keine DTDs auf, validiert nicht gegen ein Schema und lädt keine externen Entitäten — die Verarbeitung erfolgt lokal und rein textbasiert, was zugleich bedeutet, dass Sie gefahrlos Dokumente einfügen können, denen Sie nicht vollständig vertrauen.