XML ↔ JSON-Konverter
XML-Dokumente zu JSON konvertieren und zurück, Attribute inklusive
Über dieses Tool
Konvertiere XML zu JSON, um Legacy-SOAP-Antworten, RSS-Feeds oder Maven-POMs in JavaScript, jq oder eine JSON-native API zu füttern — oder geh den umgekehrten Weg und erzeuge XML aus JSON-Daten. Attribute bleiben erhalten: Sie werden zu "@_name"-Keys, und Textinhalt, der neben Attributen existiert, landet unter "#text" — es verschwindet also keine Information stillschweigend.
Die beiden Formate sind sich in Grundsatzfragen uneins, und dieser Konverter trifft die üblichen pragmatischen Entscheidungen: Wiederholte Geschwisterelemente kollabieren zu einem JSON-Array, numerisch aussehende Werte werden Zahlen, und Namespaces reisen als Teil des Elementnamens mit. Der Roundtrip XML → JSON → XML erhält für typische Dokumente Struktur und Inhalt.
Beide Richtungen laufen lokal in deinem Browser. Füge einen Rechnungs-Feed oder eine API-Antwort ein, ohne dass sie irgendwohin geht.
Häufige Fragen
- Warum kommen manche Werte als Zahlen statt als Strings zurück?
- Der Parser erkennt numerischen Text und konvertiert ihn — was die meisten Konsumenten wollen. Vorsicht bei Bezeichnern mit führenden Nullen (Produktcodes, Telefonnummern): Wenn das für deine Daten zählt, setze sie nach der Konvertierung in Anführungszeichen oder betrachte die Ausgabe als Ausgangspunkt.
- Wie werden wiederholte Elemente behandelt?
- Zwei oder mehr Geschwister mit demselben Namen werden zu einem JSON-Array unter diesem Key. Ein einzelnes Vorkommen bleibt ein einfaches Objekt — diese Asymmetrie steckt im Mapping selbst; Code, der das JSON konsumiert, sollte beide Formen tolerieren oder zuerst normalisieren.
- Was bedeuten die Keys @_ und #text?
- @_ markiert, was ein XML-Attribut war; #text trägt den Elementtext, wenn zusätzlich Attribute vorhanden sind. Dieselbe Konvention zurück in die Richtung JSON → XML gefüttert rekonstruiert das ursprüngliche Markup.
- Warum lehnt JSON → XML mein Top-Level-Array ab?
- Ein XML-Dokument muss genau ein Wurzelelement haben, und ein nacktes Array hat keins. Wickle das Array in ein Objekt — {"items": {"item": [...]}} — und der Konverter erzeugt ein wohlgeformtes Dokument.