JSON in XML umwandeln
Ein Werkzeug, das JSON-Daten in ein XML-Dokument umwandelt, mit einem frei wählbaren Wurzelelement und den JSON-Feldnamen als Elementnamen, ganz ohne eigenen XML-Generator. Gedacht für alle, die Daten an eine ältere Schnittstelle oder ein Behördensystem übergeben müssen, das bis heute ausschließlich XML entgegennimmt.
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.
Wurzelelement und Struktur festlegen
Sie legen fest, wie das Wurzelelement des XML-Dokuments heißen soll, die übrigen Elemente entstehen automatisch aus den Feldnamen der JSON-Objekte. Verschachtelte JSON-Strukturen werden dabei zu verschachtelten XML-Elementen, Listen zu mehreren gleichnamigen Elementen hintereinander, sodass die ursprüngliche Struktur der Daten im XML erhalten bleibt, ohne dass Sie das Schema von Hand nachbauen und pflegen müssen. Fehlende Angaben werden dabei nicht ergänzt, sondern bleiben im Ergebnis ebenso leer wie im ursprünglichen JSON.
Attribute oder Kindelemente
Ausgewählte Felder lassen sich statt als eigenes Element auch als Attribut des übergeordneten Elements ausgeben, etwa eine ID direkt am Wurzelelement. Das ist praktisch, wenn die empfangende Schnittstelle ein bestimmtes XML-Schema erwartet, in dem einzelne Werte als Attribut und nicht als eigenständiges Kindelement definiert sind, wie es bei vielen Altsystemen und Behördenschnittstellen der Fall ist. So passt sich das Ergebnis an vorgegebene Schemata an, statt ein eigenes, abweichendes Format zu erzwingen.
Typischer Einsatz: ältere Schnittstellen
Viele Behörden- und Partnersysteme, insbesondere ältere SOAP-Schnittstellen, nehmen bis heute ausschließlich XML entgegen, während moderne Anwendungen intern mit JSON arbeiten. Diese Umwandlung übernimmt genau diesen letzten Schritt, ohne dass im eigenen System ein zusätzlicher XML-Generator gepflegt werden muss, nur um mit einer einzelnen älteren Gegenstelle weiterhin zuverlässig kommunizieren zu können. So bleibt der Rest der eigenen Systemlandschaft konsequent bei JSON.
Kosten und Nutzung
Im Browser ist die Umwandlung kostenlos und ohne Limit, die Datei verlässt dabei Ihr Gerät nicht. Über die API kostet dieselbe Umwandlung $0.002 pro Anfrage, etwa um sie in einen automatisierten Ablauf einzubinden, der regelmäßig JSON-Daten an eine XML-Schnittstelle übergibt, ohne manuellen Zwischenschritt auf dieser Seite und ohne zusätzliche Wartezeit. Der Preis bleibt dabei unabhängig von der Größe des erzeugten Dokuments gleich.
Anwendungsfälle
JSON-Daten für eine Behördenschnittstelle
Sabine Schneider wandelt einen JSON-Export in XML um, weil das Meldesystem der Behörde ausschließlich XML-Dateien entgegennimmt.
Anbindung eines Kunden mit altem SOAP-System
Schneider IT-Systeme GmbH & Co. KG wandelt moderne JSON-Antworten in XML um, um einen Kunden mit einer älteren SOAP-Schnittstelle weiter beliefern zu können.
Testdaten für eine XML-Schnittstelle erzeugen
Thomas Müller erzeugt aus vorhandenen JSON-Testdaten passende XML-Dateien, um eine Partner-API vor der Anbindung zu testen.
Häufige Fragen
Kann ich einzelne Felder als Attribut statt als Element ausgeben?
Ja, ausgewählte Felder lassen sich als Attribut des übergeordneten Elements statt als eigenes Kindelement definieren.
Wie wird der Name des Wurzelelements festgelegt?
Sie geben den gewünschten Namen selbst vor; ohne Angabe wird ein neutraler Standardname verwendet.
Was passiert mit Listen im JSON?
Eine Liste wird zu mehreren gleichnamigen Elementen hintereinander innerhalb des übergeordneten Elements.
Gibt es ein Limit für die Dateigröße?
Die JSON-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 erzeugten XML-Dokuments.
Brauche ich ein Konto?
Nein, weder im Browser noch über die API ist ein 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/json-to-xml \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-xml", {
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/json-to-xml",
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/json-to-xml", 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/json-to-xml", 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.json_to_xml",
"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. |