100 % lokal — Ihre Daten verlassen nie Ihren Browser

JSON in XML — gültiges XML, fertig zum Einfügen

JSON in XML umwandeln. Ein Wurzelelement, gültig gemachte Tag-Namen und Einrückung nach Wahl — bereit für einen SOAP-Body oder eine Konfiguration.

Sofort Privat Null Cookies
Einrückung

JSON-Eingabe

XML-Ausgabe

Was dieses Werkzeug tut

Schlüssel werden Elemente, Werte deren Inhalt:

{ "benutzer": { "name": "Ada", "port": 8080, "aktiv": true } }
<benutzer>
  <name>Ada</name>
  <port>8080</port>
  <aktiv>true</aktiv>
</benutzer>

Ein Dokument mit mehreren Schlüsseln an der Wurzel wird in <root> verpackt, denn XML erlaubt genau ein Wurzelelement. Ein Array an der Wurzel wird zu wiederholten <item>-Elementen darin.

Hier hören die Typen auf zu existieren

Sehen Sie sich diese Ausgabe noch einmal an. 8080 und true sind jetzt Text, und nichts im Dokument sagt, dass sie je etwas anderes waren.

Das ist keine Einschränkung der Umwandlung, sondern das, was XML ist. Ein XML-Dokument trägt Struktur und Text. Typen kommen aus einem Schema — XSD, DTD, RELAX NG —, das außerhalb des Dokuments lebt und das diese Umwandlung nicht erfinden kann.

Die praktische Folge gehört klar gesagt: Zurückwandeln gibt Ihnen Zeichenketten. {"port": 8080} kommt als {"port": "8080"} zurück, sofern das Lesende nicht anders entscheidet — also rät, und sich bei einer Versionsnummer wie 1.10 oder einer Postleitzahl wie 01234 irrt.

Brauchen Sie einen typerhaltenden Rundweg, ist XML das falsche Ziel. Brauchen Sie XML, rechnen Sie mit einem verlustbehafteten Rückweg.

Schlüssel werden repariert, nicht kaputt ausgegeben

Ein XML-Elementname darf kein Leerzeichen enthalten und nicht mit einer Ziffer beginnen:

SchlüsselElement
user name<user_name>
2nd<_2nd>

Und werden zwei Schlüssel auf denselben Namen repariert, wird der zweite user_name_1. Sie zu verschmelzen ließe einen Wert stillschweigend verschwinden — genau das, was dieses Werkzeug am meisten zu vermeiden sucht.

Attribute, und der Rundweg

Ein Schlüssel "@_id" wird zum Attribut, "#text" zum Text des Elements:

{ "benutzer": { "@_id": "1", "#text": "Ada" } }
<benutzer id="1">Ada</benutzer>

Das ist dieselbe Konvention, die die Richtung XML nach JSON ausgibt: ein aus XML gewandeltes Dokument wandelt in dieselbe Form zurück — mit den Typen nun als Zeichenketten, wie oben.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Warum kam meine Zahl als Zeichenkette zurück?
Weil XML keine Typen hat. `{"port": 8080}` wird zu `<port>8080</port>`, und ein XML-Dokument kann nicht sagen, ob das eine Zahl ist oder der Text „8080“. Das Zurückwandeln gibt Ihnen eine Zeichenkette, sofern nicht etwas — ein Schema oder ein ratender Konverter — anders entscheidet. Die Information geht beim Schritt nach XML verloren, nicht auf dem Rückweg.
Was passiert mit einem Schlüssel, der kein gültiger Elementname ist?
Er wird repariert: `user name` wird `<user_name>`, `2nd` wird `<_2nd>`. Und wenn zwei Schlüssel auf denselben Namen repariert werden, bekommt der zweite ein Suffix — `user_name_1` — statt den ersten zu überschreiben: ein wortlos verschwindender Wert ist schlimmer als ein hässlicher Name.
Kann ich Attribute statt Elemente erzeugen?
Ja. Ein Schlüssel `"@_id"` wird zum Attribut `id`, ein Schlüssel `"#text"` zum Textinhalt des Elements. Das ist die Konvention, die die Richtung XML nach JSON erzeugt, ein so entstandenes Dokument wandelt also in dieselbe Form zurück.

Ähnliche Konverter