Wie wird aus XML sauberes JSON?
Ein Werkzeug, das eine XML-Datei in JSON umwandelt: Elemente werden zu Feldern, Attribute bleiben als eigene Werte erhalten, auch bei mehreren Verschachtelungsebenen. Gedacht für alle, die eine ältere Schnittstelle oder ein strukturiertes Dokument im XML-Format ohne eigenen Parser weiterverarbeiten möchten.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Elemente, Attribute und Text im JSON
Jedes XML-Element wird zu einem Feld im JSON, verschachtelte Elemente werden dabei zu verschachtelten Objekten. Attribute eines Elements erscheinen als eigene Werte innerhalb desselben Objekts, getrennt vom eigentlichen Textinhalt, damit beides im JSON eindeutig auseinandergehalten werden kann, auch wenn ein Element sowohl Attribute als auch einen Textwert gleichzeitig enthält, wie es in vielen älteren Formaten üblich ist und häufig vorkommt.
Namensräume und Sonderfälle
XML-Namensräume, wiederholte gleichnamige Elemente und Elemente ohne Inhalt werden erkannt und passend abgebildet: Wiederholte Elemente werden im JSON zu einer Liste, ein leeres Element zu einem leeren Wert. So bleibt die ursprüngliche Struktur des Dokuments nachvollziehbar, auch bei komplexeren XML-Dateien mit mehreren Ebenen und gemischtem Inhalt aus Text und weiteren Elementen innerhalb desselben Knotens. Dadurch lässt sich die Umwandlung auch auf gewachsene, historisch komplexe XML-Dokumente anwenden, ohne die Struktur vorher manuell zu vereinfachen.
XRechnung und andere strukturierte Formate
Auch die XRechnung, das in Deutschland verbreitete Format für elektronische Rechnungen im B2B-Bereich, liegt als XML vor. Wer einzelne Felder daraus, etwa Rechnungsnummer oder Bruttobetrag, in einer eigenen Anwendung weiterverarbeiten möchte, wandelt die Datei hier zunächst in JSON um, statt einen eigenen XML-Parser für dieses eine Format zu schreiben, zu testen und zu pflegen. Dasselbe gilt für andere behördliche oder branchenspezifische XML-Formate, die in vielen deutschen Unternehmen weiterhin im Einsatz sind.
Wo Sie es nutzen
Die Umwandlung läuft direkt im Browser, kostenlos und ohne Limit, ohne dass die Datei übertragen wird. Über die API lässt sich dieselbe Umwandlung automatisieren, etwa für eine Schnittstelle, die regelmäßig XML-Dateien liefert und deren Inhalt in ein modernes, JSON-basiertes System übernommen werden soll, ohne manuellen Zwischenschritt bei jeder Lieferung. Eine App-Anbindung für die mobile Nutzung ist zusätzlich in Vorbereitung, ebenso eine Anbindung per E-Mail für kleinere, gelegentliche Umwandlungen ohne eigenen technischen Aufwand.
Anwendungsfälle
XRechnung ins eigene ERP übernehmen
Weber Metallbau GmbH erhält eine XRechnung eines Lieferanten als XML und wandelt die Datei in JSON um, um die Felder automatisiert ins eigene System zu übernehmen.
Alte SOAP-Schnittstelle anbinden
Lukas Fischer wandelt die XML-Antwort einer älteren SOAP-Schnittstelle in JSON um, um sie ohne eigenen XML-Parser in einer modernen Anwendung weiterzuverarbeiten.
Export aus einem Altsystem lesbar machen
Anna Hoffmann überführt einen XML-Export eines abgelösten Systems in JSON, um die Daten in eine neue, JSON-basierte Datenbank zu übernehmen.
Häufige Fragen
Werden XML-Namensräume korrekt verarbeitet?
Ja, Namensräume werden erkannt, ebenso wiederholte gleichnamige Elemente, die im JSON als Liste erscheinen.
Wie werden Attribute von Textinhalten unterschieden?
Attribute erscheinen im JSON als eigene Werte innerhalb desselben Objekts, getrennt vom eigentlichen Textinhalt des Elements.
Funktioniert das auch mit einer XRechnung?
Ja, eine XRechnung liegt als XML vor und lässt sich hier wie jede andere XML-Datei in JSON umwandeln.
Gibt es ein Limit für die Dateigröße?
Die XML-Datei darf bis zu 25 MB groß sein.
Was kostet die Umwandlung über die API?
$0.002 pro Anfrage, unabhängig von der Größe des XML-Dokuments.
Brauche ich ein Konto?
Nein, im Browser wie über die API ist kein Konto erforderlich.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/xml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"input": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |