XML ⇄ JSON-Konverter
Bidirektionale XML ↔ JSON-Konvertierung mit Attribut-Behandlung, CDATA-Erhalt, BOM, Zeilenende- und Einrückungssteuerung
Eingabe
Ausgabe
XML ⇄ JSON-Konverter
Bidirektionale XML ↔ JSON-Konvertierung mit Attribut-Behandlung, CDATA-Erhalt, BOM, Zeilenende- und Einrückungssteuerung
Funktionen
- Auto-Erkennen-Modus erkennt, ob der eingefügte Text XML oder JSON ist, und führt die Konvertierung in die Gegenrichtung aus — beide Seiten einfügen, ohne den Modus manuell zu wechseln
- Zwei Attribut-Strategien: Präfix-Modus gibt XML-Attribute mit einem konfigurierbaren Präfix (Standard `@`) als Geschwister-JSON-Schlüssel aus, Objekt-Modus sammelt sie in einem separaten `$`-Objekt, sodass Element-Text und Attribute nie kollidieren
- CDATA- und Textknoten-Behandlung: Wenn "CDATA/Text als #text behandeln" aktiv ist, wird der Element-Textinhalt in eine `#text`-Eigenschaft eingefaltet, sodass gemischter Inhalt den JSON-Round-Trip überlebt; aus erhält die strukturelle Unterscheidung
- Pretty-Print-Umschalter mit wählbarer Einrückung (2 / 4 / 8 Leerzeichen) für JSON- und XML-Ausgabe — an für menschliche Lesbarkeit, aus für kompakten Transport
- Zeilenende-Steuerung (LF vs CRLF) für Kompatibilität mit Unix- vs Windows-Tooling, plus optionaler UTF-8-BOM-Umschalter für Systeme, die die Byte-Order-Mark verlangen
- Konfigurierbares Attribut-Präfix passt sich an Downstream-Konventionen an: `@` (Standard), `_`, `xml:` oder beliebige Zeichenkette — hält die konvertierte Ausgabe drop-in-kompatibel mit Ihrer bestehenden Pipeline
- Ein-Klick-Kopieren und Herunterladen (`converted.txt`) für die Ausgabe; Konvertierungsfehler werden inline mit der zugrunde liegenden Parser-Meldung herausgestellt — Sie wissen, ob das XML fehlerhaft war oder das JSON nicht als XML darstellbar
- Rein clientseitig: Parsing über den eingebauten DOMParser für XML und JSON.parse für JSON. Keine Netzwerkaufrufe, funktioniert offline, sobald die Seite gecacht ist
Anleitung
- XML oder JSON in die Eingabe-Ansicht einfügen. Mit Modus auf Auto-erkennen erkennt der Konverter das Format automatisch.
- Pretty-Schalter und Einrückungsgröße anpassen, um die Ausgabeformatierung zu steuern; Zeilenende zwischen LF und CRLF wechseln, wie es Downstream-Tools erfordern.
- Erweiterte Einstellungen öffnen, um Attribut-Modus (Präfix oder Objekt), Attribut-Präfix und CDATA/Text-als-#text-Behandlung zu wählen.
- Konvertieren klicken. Die Ausgabe-Ansicht zeigt das Ergebnis; die Konvertierung läuft in Ihrem Browser über DOMParser + JSON.parse.
- Kopieren nutzen, um das Ergebnis in die Zwischenablage zu legen, oder Herunterladen, um es als `converted.txt` zu speichern.
- Wenn das Parsing fehlschlägt, zeigt eine Inline-Fehlerzeile die zugrunde liegende Meldung — Eingabe korrigieren und erneut konvertieren.
Tipps & Best Practices
- Beim Debuggen einer XML-Nutzlast aus einem SOAP-Service geben Auto-erkennen + Objekt-Attribut-Modus + CDATA-als-#text die sauberste JSON-Sicht.
- Stellen Sie Zeilenende auf CRLF und aktivieren Sie die BOM, wenn Sie Ausgabe für Legacy-Windows-Tooling erzeugen.
- Wechseln Sie das Attribut-Präfix von `@` zu `_`, wenn Ihre JSON-Konsumenten Schlüssel ablehnen, die mit `@` beginnen (einige YAML-abgeleitete Parser tun das).
- Wenn die JSON-zu-XML-Ausgabe Elemente in falscher Reihenfolge bringt, fügen Sie Top-Level-Schlüssel im Quelle-JSON in der Reihenfolge ein, in der sie ausgegeben werden sollen.
- Mit JSON Formatter kombinieren, wenn Sie das konvertierte JSON weiter inspizieren oder transformieren wollen; auf der XML-Seite den XML Formatter nutzen.
FAQ
Wie ändert der Attribut-Modus die JSON-Ausgabe?
Im Präfix-Modus erscheinen XML-Attribute als Geschwisterschlüssel mit dem konfigurierten Präfix — `<user id="42"/>` wird zu `{ "user": { "@id": "42" } }`. Im Objekt-Modus werden Attribute unter einem einzelnen `$`-Schlüssel gesammelt, sodass Element-Inhalt und Attribut-Inhalt keinen Namespace teilen. Präfix wählen, wenn Konsumenten flache Schlüssel erwarten; Objekt wählen, wenn Sie Attribute ohne Mehrdeutigkeit zurück zu XML round-trippen müssen.
Wofür ist CDATA-als-#text?
XML kennt zwei Wege, Text zu halten — `<a>plain</a>` und `<a><![CDATA[plain]]></a>`. Wenn die Option an ist, kollabieren beide Formen zu einem `#text`-Schlüssel in JSON, sodass gemischter Inhalt wie `<p>Hallo <b>Welt</b></p>` den JSON-Round-Trip überlebt. Aus erhält die strukturelle Unterscheidung; nützlich, wenn die ursprünglichen CDATA-Markierungen semantisch relevant sind (z. B. eingebettete Skripte).
Warum ist der BOM-Umschalter wichtig?
Manche Windows-Tools (Excel, ältere PowerShell, .NET TextReader ohne explizite Codierung) erwarten eine UTF-8-BOM (`EF BB BF`) am Anfang einer Datei, um die Codierung korrekt zu erkennen. Modernes Web-Tooling und Unix-Pipelines behandeln die BOM meist als Rauschen. Aktivieren Sie den Schalter, wenn Sie die Ausgabe einem BOM-bewussten Windows-Tool zuführen, deaktivieren für alles andere.
Warum LF vs CRLF?
Windows-Tools und ältere Microsoft-Formate erwarten `\r\n` (CRLF) als Zeilenende; Unix/Linux/macOS verwenden standardmäßig `\n` (LF). Git normalisiert beides üblicherweise, aber Artefakte, die git umgehen (Downloads, Einfügungen in Notepad, Build-Ausgaben), brauchen die explizite Wahl. Der Auto-Erkennen-Parser ignoriert Zeilenenden; diese Steuerung wirkt nur auf die Ausgabe.
Überleben Namespaces die Konvertierung?
Namespace-präfigierte Element- und Attributnamen werden als wörtliche Zeichenketten round-trippt (z. B. `xmlns:soap` wird zum Schlüssel `@xmlns:soap`). Der Konverter löst Namespaces nicht gegen URIs auf — wenn Ihre Downstream-Pipeline Namespace-Auflösung benötigt, machen Sie diesen Schritt separat. Round-Trip zurück zu XML bewahrt die Präfixe, mit denen Sie begonnen haben.
Was passiert mit leeren Elementen?
Ein leeres XML-Element `<a/>` wird zu `{ "a": null }` in JSON (oder `{ "a": "" }`, wenn es `<a></a>` mit leerem Text war und CDATA-als-#text an ist). Beim Übergang JSON zu XML gibt ein `null`-Wert ein selbstschließendes Element aus. Round-Trip ist stabil, solange Sie die CDATA-als-#text-Einstellung zwischen den Richtungen nicht umschalten.
Warum hat meine JSON-zu-XML-Ausgabe geordnete Schlüssel?
XML-Elemente haben eine definierte Reihenfolge; JavaScript-Objekte erhalten die Einfügereihenfolge für String-Schlüssel, sodass der Konverter Elemente in der Reihenfolge schreibt, in der ihre Schlüssel im JSON erschienen. Kommt das JSON aus einem JSON.parse-Round-Trip, stimmt die Reihenfolge mit der Quelle; programmatisch erzeugt, steuern Sie die Reihenfolge durch Einfügen der Schlüssel in der gewünschten Reihenfolge.
Sind große Dokumente in diesem Tab sicher konvertierbar?
Mittlere Megabyte-Dokumente konvertieren weit unter einer Sekunde. Sehr große Dokumente (>10 MB) funktionieren, blockieren aber für die Dauer des Parsens den UI-Thread; für dieses Workload führen Sie dieselbe Logik in einem Web Worker oder einem Build-Zeit-Skript aus. Der Konvertierungs-Service ist in beiden Kontexten derselbe.