So wandeln Sie XML in JSON um
- Fügen Sie XML ein, ziehen Sie eine
.xml-Datei in den Editor oder laden Sie sie über eine URL. Das JSON erscheint schon während der Eingabe. - Passen Sie Attribut-Präfix und Schlüssel für Text an und legen Sie fest, ob immer Arrays verwendet, Zahlen und boolesche Werte umgewandelt oder Namespace-Präfixe ignoriert werden sollen.
- Kopieren Sie das JSON oder laden Sie es als
.json-Datei herunter.
So wird XML auf JSON abgebildet
| XML | JSON |
|---|---|
<name>Ada</name> | "name": "Ada" |
<price>9.90</price> | "price": 9.90 – Ziffern bleiben exakt erhalten |
<item id="7">Pen</item> | "item": {"@id": 7, "#text": "Pen"} |
<tag>a</tag><tag>b</tag> | "tag": ["a", "b"] |
<note/> | "note": null |
<![CDATA[a < b]]> | der Text "a < b" |
<soap:Body> mit Namespace-Präfixe ignorieren | "Body" |
Warum die Option „Immer als Array“ wichtig ist
Ein Element, das einmal vorkommt, wird zu einem einzelnen Wert – kommt es zweimal vor, wird es zu einem Array. Code, der das JSON liest, muss dann beide Formen verarbeiten – ein klassischer Fehler, wenn eine Liste manchmal nur einen Eintrag enthält. Aktivieren Sie Kindelemente immer als Array ausgeben, um überall Arrays zu erhalten: Die Struktur wird vorhersehbar, auf Kosten einiger zusätzlicher Klammern.
XML in JSON im Code umwandeln
- Python:
xmltodict.parse(text)(Paket xmltodict) - JavaScript:
new XMLParser({ ignoreAttributes: false }).parse(text)(Paket fast-xml-parser) - C#:
JsonConvert.SerializeXmlNode(doc)(Newtonsoft.Json) - Kommandozeile:
yq -p xml -o json file.xml
Häufig gestellte Fragen
Ist die Umwandlung verlustfrei?
Elementnamen, Attribute und Text bleiben erhalten, und Zahlen behalten ihre exakten Ziffern. Kommentare, Verarbeitungsanweisungen und die Position von Text zwischen Kindelementen (gemischter Inhalt) lassen sich in JSON nicht abbilden.
Kann ich JSON wieder in XML umwandeln?
Ja, mit dem JSON-in-XML-Konverter unserer Schwesterseite JSON Formatter, der dieselben Konventionen @ und #text verwendet.
Was passiert mit Namespaces?
Namen mit Präfix wie soap:Body werden standardmäßig als Schlüssel beibehalten, und xmlns-Deklarationen erscheinen als Attribute. Aktivieren Sie Namespace-Präfixe ignorieren, um einfache Namen wie Body ohne die Deklarationen zu erhalten.
Warum ist ein Wert ein String statt einer Zahl?
Werte wie 007 oder 1,000 sind keine einfachen Dezimalzahlen und bleiben deshalb Strings, um Datenverlust zu vermeiden. Deaktivieren Sie Zahlen und true/false umwandeln, um alle Werte als Strings zu behalten.