JSON- und XML-Konverter

Läuft in deinem Browser; nichts wird hochgeladen

JSON in XML oder XML in JSON umwandeln, mit klaren Regeln für Attribute, wiederholte Elemente und Namespaces.

Input · JSON

Output · XML

Converted XML appears here as you type.

Ready
Ln 1, Col 1

JSON und XML in APIs

JSON und XML beschreiben beide strukturierte Daten als Text. JSON hat Objekte, Arrays und typisierte Werte wie Zahlen und Booleans. XML hat verschachtelte Elemente, Attribute und Text, und alles ist Text, solange kein Schema etwas anderes sagt. SOAP-Webservices, RSS- und Atom-Feeds und viele Bank-, Zahlungs- und Behördensysteme nutzen weiterhin XML, also müssen Apps auf JSON-Basis oft übersetzen.

Die beiden Formate lassen sich nicht eins zu eins abbilden, deshalb folgt dieser Konverter einer verbreiteten, umkehrbaren Konvention. Ein Element wird zu einem Schlüssel und sein Text zum Wert. Attribute werden zu Schlüsseln mit @ am Anfang, etwa @id. Hat ein Element neben Text auch Attribute oder Kindelemente, landet der Text in #text. Ein Element, das sich wiederholt, wird zu einem Array. Namespace-Präfixe bleiben wie geschrieben, <soap:Body> wird also zu "soap:Body" und die Deklaration zu "@xmlns:soap".

XML kennt keine Typen, daher bleibt standardmäßig alles ein String: <zip>007</zip> ergibt "007" und <id>7</id> ergibt "7". Schalte Numbers ein, um Werte, die genau wie JSON-Zahlen geschrieben sind, sowie true und false als typisierte Werte zu lesen (007 bleibt trotzdem Text). In die andere Richtung kommt das Wurzelelement aus dem einzigen Schlüssel der obersten Ebene im JSON, oder aus Root name, wenn es mehrere gibt.

So benutzt du dieses Tool

  1. 1Wähle in der Werkzeugleiste JSON → XML oder XML → JSON. Füge deine Daten in den Bereich Input ein, zieh eine Datei darauf oder öffne eine mit Ctrl+O (bis 5 MB).
  2. 2Das Ergebnis steht im Bereich Output und aktualisiert sich beim Tippen. Hinweise über der Ausgabe sagen, was die Umwandlung ändern musste, etwa umbenannte Schlüssel oder weggelassene Kommentare.
  3. 3Bei XML → JSON macht Always arrays jedes Kindelement zu einem Array (im Code einfacher zu lesen), und Numbers wandelt Zahlen und Booleans um. Bei JSON → XML legst du Root name fest und ob die Ausgabe mit einer XML-Deklaration beginnt.
  4. 4Ist die Eingabe ungültig, nennt der Ausgabebereich Zeile und Spalte; mit F8 springt der Cursor zur Problemstelle.
  5. 5Swap (Shift+Alt+S) übernimmt die Ausgabe als Eingabe und dreht die Richtung um, damit du den Hin- und Rückweg prüfen kannst. Kopiere das Ergebnis oder lade es mit Ctrl+S herunter.

Fehlerbehebung

</item> erwartet, um das in Zeile 3 geöffnete Element zu schließen
Tags müssen in umgekehrter Reihenfolge geschlossen werden, mit gleichem Namen und gleicher Groß- und Kleinschreibung. Prüfe beim genannten Element, ob das schließende Tag fehlt oder falsch geschrieben ist.
Ein einzelnes & muss als &amp; geschrieben werden
In XML-Text und -Attributen leitet & eine Entität ein. Schreib &amp; für ein kaufmännisches Und, &lt; für <, oder pack den Text in <![CDATA[ ... ]]>.
Unbekannte Entität &nbsp;
Definiert sind nur die fünf XML-Entitäten (&lt; &gt; &amp; &quot; &apos;) und Zeichenreferenzen wie &#160;. &nbsp; stammt aus HTML; nimm stattdessen &#160;.
Ein zweites Wurzelelement: XML hat genau eines
Ein XML-Dokument muss genau ein Element auf oberster Ebene haben. Pack die Elemente in ein gemeinsames Elternelement.
Umbenannte Schlüssel in der XML-Ausgabe
XML-Namen dürfen keine Leerzeichen und kaum Satzzeichen enthalten und nicht mit einer Ziffer beginnen, deshalb wird first name zu <first_name> und 2fa zu <_2fa>. Der Hinweis listet jede Umbenennung auf; ändere die Schlüssel im JSON, wenn das XML andere Namen braucht.

Häufige Fragen

Wie werden JSON-Arrays in XML umgewandelt?

Jeder Eintrag wird zu einem Element mit dem Namen des Array-Schlüssels, einmal pro Eintrag: "tag": ["a", "b"] wird zu <tag>a</tag><tag>b</tag>. Ein Array auf oberster Ebene wird ins Wurzelelement gepackt, mit einem <item> pro Eintrag. Ein leeres Array erzeugt keine Elemente und kann deshalb auf dem Rückweg zu JSON nicht wiederhergestellt werden; die Hinweise sagen, wenn das passiert.

Was passiert mit Kommentaren, CDATA und Processing Instructions?

CDATA-Abschnitte werden zu normalem Text. Kommentare und Processing Instructions haben in JSON keinen Platz und werden mit einem Hinweis weggelassen. Ein DOCTYPE wird übersprungen, und darin deklarierte Entitäten werden nicht aufgelöst.

Und gemischter Inhalt wie `<p>Hello <b>world</b></p>`?

Die Kindelemente werden wie üblich zu Schlüsseln, und der umgebende Text wird in #text gesammelt. JSON kann nicht festhalten, wo der Text zwischen den Elementen stand, diese Reihenfolge geht also verloren; der Konverter fügt dann einen Hinweis hinzu.

Läuft die Umwandlung auf einem Server?

Nein. XML wird in deinem Browser gelesen und geschrieben, und nichts, was du einfügst oder öffnest, wird hochgeladen. Damit nach einem Neuladen nichts verloren geht, bleibt das Eingefügte im Session Storage dieses Tabs, bis du es löschst oder den Tab schließt. Copy link legt die Eingabe hinter das # im Link; diesen Teil schicken Browser nie an einen Server, aber jeder, dem du den Link gibst, kann sie lesen.