Wer aus einer alten SOAP-Schnittstelle Daten in eine moderne JavaScript-Anwendung holen will, steht früher oder später vor derselben Aufgabe: XML in JSON umwandeln. Diese Anleitung erklärt zuerst kurz, was XML und JSON eigentlich sind, zeigt dann an einem Mini-Beispiel, wie das Mapping funktioniert, und führt Sie in drei Schritten durch die Konvertierung mit dem Browser-Tool von xml-json.de. Vorkenntnisse brauchen Sie keine.

Was ist XML und was ist JSON?

XML (Extensible Markup Language) ist eine Auszeichnungssprache, die das W3C 1998 standardisiert hat. Daten werden in verschachtelten Tags abgelegt, jedes Element hat ein öffnendes und ein schließendes Tag, zusätzlich kann es Attribute und Namespaces tragen. XML war jahrzehntelang das Rückgrat von Web Services (SOAP), Konfigurationsdateien, RSS-Feeds und Dokumentformaten wie DOCX.

JSON (JavaScript Object Notation) ist ein deutlich schlankeres Datenformat, das auf der Objekt-Syntax von JavaScript beruht. Es kennt nur eine Handvoll Bausteine: Objekte (geschweifte Klammern), Arrays (eckige Klammern), Strings, Zahlen, die Wahrheitswerte true und false sowie null. JSON ist in ECMA-404 und RFC 8259 spezifiziert und hat sich als Standardformat für moderne REST- und GraphQL-APIs durchgesetzt, weil es kompakter und direkt in fast jeder Programmiersprache lesbar ist.

Beim Umwandeln geht es also darum, die Tag-Struktur von XML in die Objekt-Struktur von JSON zu überführen. Das ist meist verlustfrei möglich, an ein paar Stellen sind allerdings Konventionen nötig, weil XML Dinge ausdrücken kann, die JSON von Haus aus nicht kennt. Mehr dazu gleich.

Der häufigste Grund für eine Umwandlung ist die Modernisierung: Eine ältere Schnittstelle liefert XML, die neue Anwendung erwartet aber JSON. Statt den XML-Baum mühsam von Hand zu durchsuchen, übersetzt man ihn einmal nach JSON und arbeitet danach mit den vertrauten Mitteln der jeweiligen Programmiersprache weiter. Ein zweiter typischer Fall ist die reine Lesbarkeit: JSON ist für Menschen oft schneller zu erfassen als tief verschachteltes XML mit langen Tag-Namen. Drittens spielt die Größe eine Rolle, denn JSON kommt ohne schließende Tags aus und ist dadurch in der Regel kompakter, was bei der Übertragung über das Netz Bandbreite spart.

Kurz gesagt: XML beschreibt Daten ausführlich mit Tags und Attributen, JSON beschreibt dieselben Daten kompakt mit Objekten und Arrays. Der Konverter übersetzt zwischen beiden Welten nach festen Regeln.

So läuft die Umwandlung ab

Technisch passieren beim Konvertieren drei Dinge: Das XML wird zu einem Baum geparst (DOM), dieser Baum wird nach den Mapping-Regeln in JSON-Strukturen übersetzt, und das Ergebnis wird formatiert ausgegeben. Beim Browser-Tool geschieht das vollständig auf Ihrem Gerät:

Ein Mini-Beispiel: vom XML zum JSON

Sehen wir uns ein kleines, vollständiges Beispiel an. Links steht ein XML-Dokument mit einem Buch, das ein Attribut und zwei Unterelemente hat, rechts das Ergebnis nach der Umwandlung:

XML (Eingabe)

<?xml version="1.0"?>
<buch jahr="2024">
  <titel>XML lernen</titel>
  <autor>A. Beispiel</autor>
</buch>

JSON (Ausgabe)

{
  "buch": {
    "@jahr": "2024",
    "titel": "XML lernen",
    "autor": "A. Beispiel"
  }
}

Drei Dinge fallen auf: Das Attribut jahr wird zur Eigenschaft @jahr mit @-Präfix, damit es nicht mit echten Unterelementen verwechselt wird. Die Unterelemente titel und autor werden zu normalen JSON-Eigenschaften. Und die Jahreszahl bleibt als String "2024" erhalten, weil XML keine Datentypen kennt. Genau diese drei Konventionen entscheiden über ein sauberes Ergebnis.

Das @-Präfix ist dabei keine offizielle Vorschrift, sondern eine etablierte Konvention. Sie ist nötig, weil JSON keinen Unterschied zwischen einem Attribut und einem Kindelement kennt. Ohne ein solches Kennzeichen ließe sich aus dem JSON nicht mehr rekonstruieren, ob jahr ursprünglich ein Attribut oder ein verschachteltes Element war. Wer das JSON später wieder zurück in XML übersetzen möchte, ist auf diese Markierung angewiesen. Manche Konventionen wie Badgerfish verwenden statt @ auch andere Zeichen, das Prinzip bleibt aber identisch.

Würde man die Jahreszahl automatisch in die echte Zahl 2024 umwandeln, wäre das hier unkritisch. Bei Werten wie einer Postleitzahl "01067" ginge bei einer naiven Typumwandlung jedoch die führende Null verloren, und aus einer Artikelnummer wie "007" würde plötzlich 7. Deshalb verhält sich ein vorsichtiger Konverter standardmäßig konservativ und liefert Strings. Wenn Sie sicher sind, dass Ihre Daten echte Zahlen enthalten, können Sie die Typinferenz gezielt einschalten oder die betroffenen Felder im Nachhinein im Code umwandeln.

In 3 Schritten: XML mit dem Tool umwandeln

Für die Praxis brauchen Sie keine Bibliothek zu installieren. So konvertieren Sie Ihr XML mit dem kostenlosen Online-Tool von xml-json.de:

  1. XML einfügen. Kopieren Sie Ihr XML in das linke Eingabefeld des Konverters oder ziehen Sie eine .xml-Datei per Drag-and-drop hinein. Wenn Sie nur ausprobieren wollen, laden Sie über den Beispiel-Button ein fertiges Demo-XML.
  2. Konvertieren. Klicken Sie auf Konvertieren. Das Tool parst das XML, wendet die Mapping-Regeln an und zeigt das formatierte JSON sofort rechts an. Ist das XML fehlerhaft, etwa wegen eines nicht geschlossenen Tags, bekommen Sie eine klare Fehlermeldung statt eines kaputten Ergebnisses.
  3. Kopieren oder herunterladen. Übernehmen Sie das Ergebnis mit einem Klick in die Zwischenablage oder laden Sie es als .json-Datei herunter. Bei Bedarf schalten Sie zwischen schön formatierter und minifizierter Ausgabe um.

Die wichtigsten Mapping-Regeln auf einen Blick

Damit Sie das Ergebnis richtig deuten, hier die gängigen Übersetzungsregeln. Sie folgen weitgehend der verbreiteten Konvention, wie sie auch Bibliotheken wie xml2js oder fast-xml-parser nutzen:

XML-Konstrukt Beispiel XML JSON-Ergebnis
Element mit Text <titel>Buch</titel> "titel": "Buch"
Attribut <buch jahr="2024"> "@jahr": "2024"
Text neben Attribut <preis w="EUR">9</preis> { "@w": "EUR", "#text": "9" }
Wiederholtes Element <tag/><tag/> "tag": [ {}, {} ]
Namespace-Präfix <soap:Body> "soap:Body": { ... }
Leeres Element <rabatt/> "rabatt": null
Häufige Stolperfalle: Kommt ein Element in Ihrer Testdatei nur einmal vor, in echten Daten aber mehrfach, kann das Ergebnis vom Objekt zum Array wechseln. Wer das JSON automatisch weiterverarbeitet, sollte solche Felder im Code immer als möglichen Array behandeln, sonst bricht die Verarbeitung bei mehreren Einträgen.

Wann reicht das Online-Tool, wann brauchen Sie Code?

Für einmalige Umwandlungen, schnelle Tests oder das Inspizieren einer fremden XML-Struktur ist das Browser-Tool die schnellste und datenschutzfreundlichste Lösung: nichts installieren, nichts hochladen. Sobald die Konvertierung aber Teil eines automatisierten Ablaufs wird, etwa in einem Build-Schritt, einer API oder einem nächtlichen Import, lohnt sich eine Bibliothek im eigenen Code.

In JavaScript sind xml2js und fast-xml-parser üblich, in Python xmltodict, in PHP die eingebaute SimpleXML-Erweiterung. Welche Bibliothek wie konfiguriert wird und wann sich welcher Weg lohnt, behandeln wir ausführlich im Tutorial XML zu JSON in JavaScript, Python und PHP sowie im Converter-Vergleich.

Ein nicht zu unterschätzendes Argument für das Browser-Tool ist der Datenschutz. Viele klassische Online-Konverter laden die XML-Datei zunächst auf einen fremden Server, wandeln sie dort um und schicken das Ergebnis zurück. Bei vertraulichen Inhalten, etwa Rechnungsdaten, Patientendaten aus HL7-Nachrichten oder internen Konfigurationen, ist das heikel, weil die Daten den eigenen Verantwortungsbereich verlassen. Beim clientseitigen Tool von xml-json.de passiert die gesamte Verarbeitung in Ihrem Browser, es findet keine Übertragung statt. Damit bleiben die Daten nachweislich lokal, was die Einhaltung der DSGVO erheblich vereinfacht. Die Hintergründe dazu vertiefen wir im Artikel XML zu JSON und Datenschutz.

Typische Fehler beim Umwandeln und wie Sie sie vermeiden

Die meisten Probleme entstehen nicht beim Konverter, sondern beim XML selbst. XML ist streng: Jedes öffnende Tag braucht ein schließendes, Tag-Namen sind groß- und kleinschreibungssensitiv, und es darf genau ein Wurzelelement geben. Ein vergessenes schließendes Tag oder ein Sonderzeichen wie ein nicht maskiertes Und-Zeichen führt zu einem Parser-Fehler, bevor überhaupt gemappt werden kann. Ein gutes Tool meldet in diesem Fall die genaue Stelle, statt stillschweigend ein unvollständiges Ergebnis zu liefern.

Ein zweiter Klassiker ist die bereits erwähnte Verwechslung von Einzelwert und Liste. Wer sein Mapping nur an einer Beispieldatei mit genau einem Eintrag testet, übersieht leicht, dass dasselbe Feld in der Praxis als Array auftaucht. Prüfen Sie deshalb am besten mit echten Daten, die auch Mehrfach-Elemente enthalten. Ein dritter Punkt betrifft den Zeichensatz: Liegt das XML nicht in UTF-8 vor, können Umlaute wie ä, ö, ü oder das ß im JSON falsch erscheinen. Achten Sie darauf, dass die Quelldatei korrekt kodiert ist, dann bleiben deutsche Sonderzeichen sauber erhalten.

Häufige Fragen

Wie wandle ich eine XML-Datei in JSON um?

Öffnen Sie den XML zu JSON Converter, fügen Sie Ihr XML in das linke Feld ein oder ziehen Sie die Datei per Drag-and-drop hinein und klicken Sie auf Konvertieren. Das gültige JSON erscheint sofort rechts und lässt sich kopieren oder als .json-Datei herunterladen. Die Umwandlung läuft komplett im Browser, es wird nichts hochgeladen.

Was ist der Unterschied zwischen XML und JSON?

XML ist eine Auszeichnungssprache mit öffnenden und schließenden Tags, Attributen und Namespaces und wurde 1998 vom W3C standardisiert. JSON ist ein schlankes, an JavaScript angelehntes Datenformat aus Objekten und Arrays, definiert in ECMA-404 und RFC 8259. JSON ist kompakter und in Web-APIs heute der Standard, XML ist ausdrucksstärker und in SOAP, RSS und Dokumentformaten verbreitet.

Werden meine XML-Daten beim Umwandeln hochgeladen?

Nein. Beim Browser-Tool von xml-json.de findet die gesamte Verarbeitung clientseitig in Ihrem Gerät statt. Die XML-Daten verlassen den Browser nicht und werden zu keinem Zeitpunkt an einen Server gesendet oder gespeichert. Das macht das Tool DSGVO-freundlich und auch für vertrauliche Daten geeignet.

Warum werden Zahlen aus XML im JSON als Text ausgegeben?

XML kennt keine Datentypen, jeder Wert ist dort reiner Text. Ein konservativer Konverter übernimmt Werte deshalb als String, um Datenverluste wie verlorene führende Nullen in Postleitzahlen zu vermeiden. Manche Werkzeuge bieten eine optionale Typinferenz, die etwa "42" in die Zahl 42 umwandelt.

Wie werden XML-Attribute in JSON dargestellt?

Attribute werden üblicherweise mit einem Präfix in das JSON-Objekt übernommen, am verbreitetsten ist das @-Zeichen. Aus <buch jahr="2024"> wird so etwa { "buch": { "@jahr": "2024" } }. Der Textinhalt eines Elements, das zugleich Attribute trägt, landet in einer eigenen Eigenschaft, häufig "#text".

Kann ich auch große XML-Dateien umwandeln?

Ja. Da die Konvertierung lokal im Browser läuft, gibt es kein festes Server-Limit wie etwa die 50 MB mancher Upload-Dienste. Die praktische Grenze hängt vom Arbeitsspeicher Ihres Geräts ab. Dateien mit mehreren Megabyte lassen sich auf üblichen Rechnern problemlos verarbeiten.

Quellen

Verwandte Artikel

Bereit zum Umwandeln?

Fügen Sie Ihr XML ein und erhalten Sie sofort sauberes JSON, kostenlos und vollständig im Browser, ohne Upload.

Zum XML zu JSON Converter