XML zu JSON Konverter
XML einfügen und sofort JSON erhalten. Konvertiert Attribute in @_-Schlüssel, behandelt wiederholte Elemente als Arrays. 100 % im Browser, nichts wird hochgeladen, keine Anmeldung.
Optionen · 2 Leerzeichen · XML → JSON
Was ist XML-zu-JSON-Konvertierung und wie funktioniert sie?
XML (Extensible Markup Language) und JSON (JavaScript Object Notation) sind beides strukturierte Datenformate, haben aber grundlegend unterschiedliche Modelle: XML ist ein Baum aus Elementen mit Attributen und gemischtem Inhalt (Text gemischt mit Kindelementen); JSON ist ein Baum aus Objekten, Arrays, Zeichenketten, Zahlen, booleschen Werten und null. Die Konvertierung zwischen ihnen erfordert einen Satz von Konventionen, um die Modellunterschiede zu überbrücken.
Dieses Werkzeug verwendet die am weitesten verbreitete Konvention — dieselbe, die von populären Bibliotheken wie fast-xml-parser (Node.js), xmltodict (Python) und JAXB (Java) verwendet wird:
**1. Attribute → @_-Präfix.** XML-Attribute haben kein direktes JSON-Äquivalent. Die Konvention ist, sie als Schlüssel mit dem Präfix @_ darzustellen. So wird
**2. Elementtextinhalt mit Attributen → #text.** Wenn ein Element sowohl Attribute als auch Textinhalt hat —
**3. Wiederholte Geschwisterelemente → Arrays.** XML erlaubt mehrere Kindelemente mit demselben Namen; JSON-Objekte können keine doppelten Schlüssel haben. Die Lösung ist, gleichnamige Geschwister in einem Array zu sammeln. Ein
**4. Keine Typumwandlung — alle Werte bleiben Zeichenketten.** XML hat kein natives Typsystem für Textinhalte. Ein Wert von "123" in XML ist eine Zeichenkette. Ihn in die JSON-Zahl 123 umzuwandeln erfordert eine Annahme über die Absicht des Autors — eine Annahme, die für Postleitzahlen ("01234" → 1234), Telefonnummern, aufgefüllte Bezeichner und präzisionssensitive Dezimalzeichenketten falsch ist. Dieses Werkzeug bewahrt alle Werte als Zeichenketten. Wenden Sie Typumwandlung in Ihrem eigenen Code für die Felder an, bei denen Sie den Typ kennen.
**5. Verlustbehaftet bei Kommentaren, Verarbeitungsanweisungen und Namespaces.** XML unterstützt Funktionen, die JSON nicht hat: Kommentare (), Verarbeitungsanweisungen (), und Namespace-Semantik. Diese werden bei der Konvertierung verworfen oder näherungsweise dargestellt. Für verlustfreie XML-Arbeit — Neuformatierung, Minimierung, Validierung — nutzen Sie stattdessen den XML-Formatierer. Für die umgekehrte Konvertierung — XML aus JSON erstellen — nutzen Sie den JSON zu XML Konverter.
**Warum überhaupt XML zu JSON konvertieren?** JSON ist das native Format von JavaScript und das Standard-Austauschformat für REST-APIs. Wenn Sie XML von einem Legacy-SOAP-Dienst, einem RSS-Feed, einer Sitemap oder einem Enterprise-System erhalten, ermöglicht die Konvertierung zu JSON die Arbeit mit den Daten per standardmäßigem JavaScript-Objektzugriff, JSON-Path-Abfragen und jedem JSON-fähigen Datenbankdienst oder einer API. Die Konvertierung ist eine Einweg-Brücke: nützlich zum Konsumieren von XML-Daten in einem modernen Stack, aber nicht zum Erhalten oder Round-Trippen von XML-Dokumenten.
// Convert XML to JSON in Node.js using fast-xml-parser
import { XMLParser } from 'fast-xml-parser';
const xml = `<catalog>
<product id="P01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog>`;
const parser = new XMLParser({
ignoreAttributes: false, // preserve attributes
attributeNamePrefix: '@_', // @_ prefix for attributes
textNodeName: '#text', // #text for mixed element content
parseAttributeValue: false, // no type coercion on attributes
parseTagValue: false, // no type coercion on element text
});
const result = parser.parse(xml);
console.log(JSON.stringify(result, null, 2));
// {
// "catalog": {
// "product": {
// "@_id": "P01",
// "name": "Wireless Headphones",
// "price": {
// "@_currency": "USD",
// "#text": "79.99"
// }
// }
// }
// } Hauptfunktionen
Live-Konvertierung
Die JSON-Ausgabe wird sofort aktualisiert, während Sie XML tippen oder einfügen — keine Schaltfläche „Konvertieren” nötig. Große Eingaben (>200 KB) schalten automatisch in den manuellen Modus um, um den Browser reaktionsfähig zu halten.
@_-Attributpräfix-Konvention
XML-Attribute werden zu @_-präfixierten JSON-Schlüsseln gemäß der fast-xml-parser- und xmltodict-Konvention.
Automatische Array-Erkennung für wiederholte Elemente
Gleichnamige Geschwisterelemente werden automatisch zu einem JSON-Array. Ein
Keine Typumwandlung — Werte bleiben Zeichenketten
Alle XML-Werte werden als JSON-Zeichenketten erhalten. Führende Nullen, Telefonnummern, aufgefüllte Codes und boolean-ähnliche Zeichenketten wie "true" oder "false" werden niemals stillschweigend in Zahlen oder boolesche Werte umgewandelt.
100 % browserbasierte Privatsphäre
Die gesamte Konvertierung läuft lokal in Ihrem Browser mit JavaScript. Ihr XML — einschließlich Zugangsdaten, interner Konfigurationen und sensibler Payloads — wird niemals an einen Server gesendet, niemals protokolliert und niemals gespeichert.
Wohlgeformtheits-Fehlerberichterstattung
Ist Ihr XML nicht wohlgeformt, meldet das Werkzeug die genaue Zeilen- und Spaltennummer des ersten Fehlers, damit Sie das Problem sofort lokalisieren und beheben können, bevor Sie konvertieren.
Beispiele
Konfigurationsdatei
<?xml version="1.0" encoding="UTF-8"?>
<appConfig version="2.1" env="production">
<database>
<host>db.example.com</host>
<port>5432</port>
<name>myapp_prod</name>
<pool max="10" min="2"/>
</database>
<cache enabled="true">
<ttl>3600</ttl>
<driver>redis</driver>
</cache>
</appConfig> Eine kleine Anwendungskonfiguration mit Attributen und verschachtelten Elementen. Attribute werden zu @_-präfixierten Schlüsseln in der JSON-Ausgabe: version="2.1" wird zu "@_version": "2.1" unter appConfig, und die Attribute max und min des pool-Elements werden zu "@_max": "10" und "@_min": "2". Alle Werte — einschließlich port und ttl — bleiben Zeichenketten, keine Zahlen, da der Konverter keine Typumwandlung vornimmt.
Sitemap-Fragment
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://go-tools.org/tools/xml-to-json</loc>
<lastmod>2026-05-29</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://go-tools.org/tools/json-to-xml</loc>
<lastmod>2026-05-29</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset> Ein sitemap.xml-Fragment mit zwei URLs. Da unter
RSS-Item
<item> <title>XML to JSON: A Practical Guide</title> <link>https://go-tools.org/blog/xml-to-json-guide</link> <pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate> <category>Developer Tools</category> <description>Learn how XML attributes map to @_ keys, how repeated elements become arrays, and why values stay strings in any XML-to-JSON conversion.</description> <guid isPermaLink="true">https://go-tools.org/blog/xml-to-json-guide</guid> </item>
Ein RSS-2.0-Item-Element. Das guid-Element hat ein isPermaLink-Attribut, daher wird die JSON-Ausgabe für guid zu einem Objekt mit "@_isPermaLink": "true" und "#text": "https://go-tools.org/blog/xml-to-json-guide" — Attribut und Textinhalt des Elements koexistieren als Geschwisterschlüssel. Alle anderen Elemente haben nur Textinhalt und werden direkt zu Zeichenkettenwerten konvertiert.
Anleitung
- 1
XML einfügen
Geben Sie Ihr XML in das Eingabefeld oben ein oder fügen Sie es ein. Sie können auch auf „Beispiel laden” klicken, um ein Beispiel auszuprobieren — eine Konfigurationsdatei, ein Sitemap-Fragment oder ein RSS-Item.
- 2
Live-JSON-Ausgabe ansehen
JSON erscheint sofort im Ausgabebereich. Attribute werden zu @_-präfixierten Schlüsseln, Textinhalte gemischter Elemente werden zu #text, und wiederholte Geschwisterelemente werden zu Arrays. Passen Sie die Einrückung (2 oder 4 Leerzeichen) nach Bedarf an.
- 3
Kopieren oder Herunterladen
Klicken Sie auf „Kopieren”, um das JSON in die Zwischenablage zu übernehmen, oder auf „Herunterladen”, um es als .json-Datei für Ihre Anwendung, API oder Datenpipeline zu speichern.
Häufige Konvertierungsfehler
Vergessen, dass Werte Zeichenketten bleiben
Der Konverter nimmt keine Typumwandlung vor. Wenn Ihr nachgelagerter Code JSON-Zahlen erwartet, das XML aber numerische Zeichenketten enthält, müssen Sie diese nach der Konvertierung explizit umwandeln. Sich auf implizite Zeichenketten-zu-Zahlen-Umwandlung (JavaScripts == oder arithmetische Operatoren) zu verlassen ist fehleranfällig — verwenden Sie immer gezielt parseInt(), parseFloat() oder Number().
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" } ← string, not number
// Dangerous: comparing as-is
if (config.timeout > 25) { ... } // "30" > 25 coerces, but fragile // XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }
// Safe: explicit coercion where you know the type
if (parseInt(config.timeout, 10) > 25) { ... } Einzelelement- vs. Array-Formunterschiede
Wenn nur ein
// XML with one item: <root><item>a</item></root>
// JSON: { "root": { "item": "a" } } ← string, not array
result.root.item.forEach(i => console.log(i)); // TypeError: not a function // Normalize to array regardless of count const items = [].concat(result.root?.item ?? []); items.forEach(i => console.log(i)); // safe for 0, 1, or many
Gemischter Inhalt: Text und #text-Schlüssel
Wenn ein Element sowohl Attribute als auch Textinhalt hat, landet der Text unter #text. Auf den Textwert wie auf eine einfache Zeichenkette zuzugreifen liefert stattdessen ein Objekt. Prüfen Sie immer, ob ein Elementwert eine Zeichenkette oder ein Objekt mit einem #text-Schlüssel ist, wenn Attribute möglich sind.
// XML: <price currency="USD">29.99</price>
// JSON: { "price": { "@_currency": "USD", "#text": "29.99" } }
const amount = result.price; // { "@_currency": "USD", "#text": "29.99" }, not "29.99" // Handle both plain string and @_/#text object const raw = result.price; const amount = typeof raw === 'object' ? raw['#text'] : raw; // "29.99"
Nicht wohlgeformte XML-Eingabe
Der Konverter erfordert wohlgeformtes XML. Häufige Ursachen für Wohlgeformtheitsfehler: nicht maskiertes & im Textinhalt (verwenden Sie &), nicht übereinstimmende Tags (
<!-- Unescaped & — well-formedness error --> <query>name = 'Alice' & role = 'admin'</query>
<!-- Escaped & — valid XML --> <query>name = 'Alice' & role = 'admin'</query>
Führende Nullen durch Typumwandlung verloren
Dieses Werkzeug bewahrt führende Nullen, da es keine Typumwandlung vornimmt. Wenn Sie das JSON mit einer Bibliothek nachverarbeiten, die Umwandlungen vornimmt (manche JSON-Schema-Validatoren, ORM-Mapper), kann die führende Null verloren gehen. Deklarieren Sie den Feldtyp in Ihrem Schema immer explizit als Zeichenkette.
// XML: <zipCode>01234</zipCode>
// This tool outputs: { "zipCode": "01234" } ← correct
// But if a downstream schema coerces:
// { zipCode: z.number() } → 1234 ← leading zero lost // Declare ZIP codes and other padded identifiers as strings
// { zipCode: z.string() } → "01234" ← correct Häufige Anwendungsfälle
- SOAP- / Legacy-XML-APIs konsumieren
- Legacy-Enterprise-Dienste (Banking, Versicherung, Logistik) bieten häufig SOAP-APIs an, die XML zurückgeben. Konvertieren Sie die Antwort zu JSON, um mit den Daten mithilfe moderner JavaScript-Werkzeuge zu arbeiten, sie in einer Dokumentendatenbank zu speichern oder an einen REST-API-Consumer weiterzuleiten.
- RSS- und Atom-Feeds verarbeiten
- RSS-2.0- und Atom-1.0-Feeds sind XML. Konvertieren Sie Feed-XML zu JSON, um Titel, Links, Veröffentlichungsdaten und Beschreibungen für Feed-Aggregatoren, Inhaltspipelines und Benachrichtigungssysteme zu extrahieren — ohne eine XML-Parsing-Bibliothek als Abhängigkeit.
- Sitemap-Dateien parsen
- sitemap.xml-Dateien listen die URLs einer Website mit Metadaten auf. Konvertieren Sie eine Sitemap zu JSON, um URL-Abdeckung zu analysieren, Crawl-Warteschlangen aufzubauen, Sitemaps über Umgebungen hinweg zu vergleichen oder URLs in einen Link-Checker oder SEO-Audit-Werkzeug einzuspeisen.
- Konfigurationsdateien transformieren
- Viele Enterprise-Systeme (Spring, Maven, Ant, JBoss, Tomcat) verwenden XML-Konfigurationsdateien. Konvertieren Sie sie zu JSON für Analysen, Migrationsskripte, Dokumentationserstellung oder den Import in Werkzeuge, die JSON nativ unterstützen.
- Mobile- und Android-Entwicklung
- Android-Ressourcen, Layout-Dateien und AndroidManifest.xml sind allesamt XML. Konvertieren Sie sie zu JSON für Analyseskripte, automatisiertes Auditing oder das Erstellen von Dokumentationen über deklarierte Berechtigungen, Activities und Ressourcenwerte.
- Datenmigration und ETL
- Datenexporte aus Enterprise-Systemen (ERP, CRM, Gehaltsabrechnung) kommen häufig als XML. Konvertieren Sie zu JSON als ersten Schritt in einer ETL-Pipeline, um die Daten in einen JSON-nativen Datenspeicher wie MongoDB, Firestore oder eine REST-API zu laden.
Technische Details
- Browser-DOMParser für das XML-Parsing
- XML-Eingaben werden mit dem nativen DOMParser des Browsers und dem MIME-Typ 'text/xml' geparst — dieselbe Engine, die SVG und XHTML rendert. Sie ist vollständig XML-1.0-konform und meldet Wohlgeformtheitsfehler mit Zeilen- und Spalteninformationen. Dieser Ansatz verarbeitet Namespaces, CDATA-Abschnitte, Verarbeitungsanweisungen und Entity-Referenzen korrekt ohne Drittanbieter-Abhängigkeiten.
- Rekursive DOM-zu-JSON-Serialisierung
- Nach dem Parsen durchläuft das Werkzeug den DOM-Baum rekursiv. Elementknoten werden zu JSON-Objekten; ihre Attribute werden zu @_-präfixierten Schlüsseln; reine Textelemente werden zu einfachen Zeichenkettenwerten; Elemente mit sowohl Attributen als auch Textinhalt erhalten einen #text-Schlüssel für den Textinhalt. Gleichnamige Geschwisterelemente werden gesammelt und als JSON-Array ausgegeben. Reine Leerzeichen-Textknoten zwischen Elementen werden verworfen.
- Keine Typumwandlung — Zeichenkettenerhaltung
- Alle Attributwerte und Textinhalte werden als Zeichenketten in die JSON-Ausgabe geschrieben. Keine parseInt-, parseFloat- oder boolesche Verarbeitung wird angewendet. Das ist eine bewusste Designentscheidung, um stille Datenverfälschung bei Werten mit führenden Nullen, präzisionssensitiven Dezimalzahlen und boolean-ähnlichen Zeichenketten zu verhindern. Typumwandlung sollte, wo nötig, explizit im nachgelagerten Code angewendet werden.
- 100 % browserbasiert — kein Upload, kein Server
- Alle Verarbeitung läuft in der JavaScript-Engine Ihres Browsers. Zu keinem Zeitpunkt werden Daten über das Netzwerk übertragen. Eingaben größer als 200 KB schalten automatisch vom Live-Modus in den manuellen Modus um (erfordert einen expliziten Klick auf „Konvertieren”), um den Browser reaktionsfähig zu halten und ein Blockieren des Hauptthreads bei intensivem DOM-Durchlauf zu verhindern.
Best Practices
- XML-Wohlgeformtheit zuerst validieren
- Wenn Ihre XML-Quelle handgeschrieben oder von einem System generiert ist, das gelegentlich fehlerhafte Ausgabe erzeugt, validieren Sie sie vor der Konvertierung. Nutzen Sie die Schaltfläche „Validieren” im XML-Formatierer, um zu bestätigen, dass das XML wohlgeformt ist, und erhalten Sie genaue Fehlerpositionen für etwaige Probleme.
- Ein-oder-viele-Felder zu Arrays normalisieren
- Wenn Ihr XML-Schema entweder ein oder viele Kindelemente mit demselben Namen erlaubt, ist die JSON-Ausgabe ein Objekt für ein Element und ein Array für viele. Normalisieren Sie diese Felder immer in Ihrem Consumer-Code: const items = [].concat(result.items ?? []) — das ist sicher für null, eines oder viele und verhindert TypeErrors.
- Typumwandlung explizit und selektiv anwenden
- Da dieses Werkzeug alle Werte als Zeichenketten bewahrt, wenden Sie Typumwandlung gezielt in Ihrem Code für die spezifischen Felder an, die sie benötigen. parseInt(val, 10) für ein bekanntes Ganzzahlfeld zu verwenden ist sicher. Die Anwendung von Number(val) auf breiter Basis riskiert die Verfälschung von Werten mit führenden Nullen, leeren Zeichenketten und präzisionssensitiven Dezimalzahlen.
- Auf #text beim Zugriff auf Elementwerte prüfen
- Wenn ein Element in manchen Payloads Attribute haben kann und in anderen nicht, ist sein JSON-Wert entweder eine einfache Zeichenkette (keine Attribute) oder ein Objekt mit @_-Schlüsseln und einem #text-Schlüssel (mit Attributen). Schreiben Sie robuste Zugriffsmethoden: const val = typeof node === 'object' ? node['#text'] : node. Dieses Muster behandelt beide Formen und vermeidet stille undefined-Werte.
- Für verlustfreie XML-Arbeit den XML-Formatierer verwenden
- Die XML-zu-JSON-Konvertierung verwirft Kommentare, Verarbeitungsanweisungen und Namespace-Semantik. Wenn Sie alle XML-Inhalte exakt erhalten müssen, nutzen Sie den XML-Formatierer zum Verschönern, Minimieren und Validieren ohne Verluste. Konvertieren Sie nur dann zu JSON, wenn Sie mit den Daten in einem JSON-nativen Kontext arbeiten müssen.
Häufig gestellte Fragen
Werden meine XML-Daten bei der Nutzung dieses Werkzeugs an einen Server gesendet?
Wie werden XML-Attribute in der JSON-Ausgabe dargestellt?
Wandelt der Konverter Zahlen oder boolesche Werte um?
Wie werden wiederholte (gleichnamige Geschwister-)Elemente behandelt?
Ist die XML-zu-JSON-Konvertierung verlustfrei?
Wie konvertiere ich JSON zurück zu XML?
Was passiert mit XML-Namespaces?
Warum wird 0123 zu "0123" und nicht zu 123?
Was ist der Unterschied zwischen diesem Werkzeug und einem XML-Formatierer?
Gibt es eine Dateigrößenbeschränkung?
Verarbeitet der Konverter CDATA-Abschnitte?
Kann ich XML mit mehreren Wurzelelementen konvertieren?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
CSV-zu-JSON-Konverter
Kodierung & Formatierung
CSV im Browser nach JSON konvertieren. RFC 4180, Typinferenz, Kopfzeile, Big-Int-sicher. 100 % privat, kein Upload.
JSON Diff Vergleich
Kodierung & Formatierung
Zwei JSON-Dateien direkt im Browser vergleichen. Nebeneinander-Hervorhebung, RFC 6902 JSON Patch-Ausgabe, störende Felder wie Zeitstempel und IDs ignorieren. 100 % privat, kein Upload.
JSON-Formatierer & Validator
Kodierung & Formatierung
JSON sofort im Browser formatieren, validieren und verschönern. Kostenloses Online-Tool mit Syntaxprüfung, Fehlererkennung, Minifizierung und Ein-Klick-Kopie. 100 % privat.
JSON-Schema-Validator
Kodierung & Formatierung
JSON gegen ein JSON Schema sofort im Browser validieren. Unterstützt Draft 2020-12, 2019-09 und Draft-07 mit pfadgenauen Fehlermeldungen. 100 % privat — kein Upload, kein Konto, kostenlos.
JSON-zu-CSV-Konverter
Kodierung & Formatierung
JSON im Browser nach CSV konvertieren. RFC 4180, Excel-EU, TSV, Pipe-Voreinstellungen. Verschachteln oder stringifizieren. 100 % privat, kein Upload.