Zum Inhalt springen

XML in JSON umwandeln

XML in sauberes JSON umwandeln und Attribute, Arrays und Namespaces steuern.

Optionen
Läuft im Browser – Ihr XML wird nicht hochgeladen. Externe DTDs werden nie abgerufen.

So funktioniert’s

  1. Fügen Sie Ihren XML-Text in das Eingabefeld XML ein.
  2. Wählen Sie unter Arrays „Automatisch (ab 2 gleichen Tags)“ oder „Immer“.
  3. Wählen Sie unter Einrückung „2 Leerzeichen“, „4 Leerzeichen“, „Tabulator“ oder „Minifizieren“ für die JSON-Ausgabe.
  4. Prüfen Sie das Ergebnis im Ausgabefeld JSON und beachten Sie mögliche Warnungen.

Beispiele

Artikeldaten mit Zahlen und Wahrheitswerten

Eingabe
<artikel nummer="007">
  <name>Schreibtischlampe</name>
  <preis>29.90</preis>
  <lieferbar>true</lieferbar>
  <ean>12345678901234567890</ean>
  <hinweis/>
</artikel>
Ausgabe
{
  "artikel": {
    "@nummer": "007",
    "name": "Schreibtischlampe",
    "preis": 29.90,
    "lieferbar": true,
    "ean": "12345678901234567890",
    "hinweis": null
  }
}

RSS-Meldung mit Array auch bei einem Eintrag

Eingabe
<rss version="2.0">
  <channel>
    <title>Stadtbibliothek Leipzig</title>
    <item>
      <title>Neue Öffnungszeiten ab November</title>
      <link>https://bibliothek.example.de/aktuelles/oeffnungszeiten</link>
    </item>
  </channel>
</rss>
Ausgabe
{
  "rss": {
    "@version": "2.0",
    "channel": [
      {
        "title": [
          "Stadtbibliothek Leipzig"
        ],
        "item": [
          {
            "title": [
              "Neue Öffnungszeiten ab November"
            ],
            "link": [
              "https://bibliothek.example.de/aktuelles/oeffnungszeiten"
            ]
          }
        ]
      }
    ]
  }
}

Konfiguration ohne Namespace-Präfixe, mit Kommentar

Eingabe
<cfg:einstellungen xmlns:cfg="urn:beispiel:konfiguration">
  <!-- Angaben für den Versand -->
  <cfg:standort>Hamburg</cfg:standort>
  <cfg:versandart code="standard">DHL Paket</cfg:versandart>
  <cfg:zusatz/>
</cfg:einstellungen>
Ausgabe
{
    "@xmlns:cfg": "urn:beispiel:konfiguration",
    "#comment": "Angaben für den Versand",
    "standort": "Hamburg",
    "versandart": {
        "@code": "standard",
        "#text": "DHL Paket"
    },
    "zusatz": {}
}

Häufige Fragen

Wie werden XML-Attribute in JSON dargestellt?

Standardmäßig erhält jedes Attribut einen eigenen Schlüssel mit @, etwa @id. Hat ein Element zusätzlich Text, steht dieser unter #text; das lässt sich über Textschlüssel ändern.

Bleibt die Reihenfolge von Text und XML-Elementen erhalten?

Bei gemischten Inhalten werden die Textteile zusammengeführt; ihre Position zwischen den Elementen geht verloren. Auch abwechselnde Kindelemente wie a, b, a werden nach Namen gruppiert. In beiden Fällen erscheint eine Warnung.

Warum wird mein XML nicht in JSON umgewandelt?

Bei ungültigem XML bleibt die Ausgabe leer; die Fehlermeldung nennt Zeile und Spalte. Prüfen Sie etwa nicht geschlossene Tags, mehrere Wurzelelemente oder ein unmaskiertes &. HTML-Entities wie &nbsp; sind in XML nicht vordefiniert; verwenden Sie dafür &#160;.

Werden meine XML-Daten auf einen Server hochgeladen?

Die Umwandlung läuft im Browser; Ihre XML-Daten werden nicht hochgeladen, und externe DTDs werden nicht abgerufen. Gespeichert werden die Optionseinstellungen, nicht die Eingabe. Beim Wechsel zu einem anderen Tool wird der Text vorübergehend im sessionStorage übergeben und dort beim Einlesen entfernt.