Zum Inhalt springen
jsonbeautifiers
Deutsch

JSON in XML

Wohlgeformtes XML mit gewähltem Wurzelelement, Attributen und korrektem Escaping.

JSON
XML

Nichts, was Sie einfügen, verlässt Ihren Browser. Die connect-src Erlaubnisliste macht daraus eine Garantie des Browsers statt eines Versprechens. Selbst überprüfen

Wandeln Sie JSON in wohlgeformtes XML um, mit einem Wurzelelement Ihrer Wahl, Attributunterstützung und korrektem Escaping.

Die beiden Datenmodelle decken sich nicht genau, diese Umwandlung trifft also Entscheidungen. Sie stehen hier aufgelistet und werden in den Ausgabehinweisen gemeldet, wenn sie auf Ihr Dokument zutreffen.

Wie die Zuordnung funktioniert

Objektschlüssel werden zu Elementen
Ein Schlüssel "name" wird zu einem Element <name>.
Ein Schlüssel mit @-Präfix wird zu einem Attribut
{"@id": "1"} wird zu id="1" am umschließenden Element.
Ein Schlüssel #text wird zum Text des Elements
So erzeugen Sie ein Element, das sowohl Attribute als auch Inhalt hat.
Arrays wiederholen das Element
So drückt XML eine Liste aus. Ein eigenes Hüllelement gibt es nur, wenn Sie eines bauen.
Aus null wird xsi:nil
Die XML-Schema-Konvention. Ein leeres Element wäre von einer leeren Zeichenkette nicht zu unterscheiden.

Schlüsselnamen, die keine gültigen XML-Namen sind

XML-Elementnamen dürfen nicht mit einer Ziffer beginnen und keine Leerzeichen oder die meisten Satzzeichen enthalten. JSON-Schlüssel tun regelmäßig beides. Solche Schlüssel werden mit Unterstrichen umgeschrieben, und die Umwandlung sagt Ihnen, dass das passiert ist, statt es stillschweigend zu tun - denn der Rückweg stellt die ursprünglichen Namen nicht wieder her.

Was XML hat und JSON nicht

Namensräume, Verarbeitungsanweisungen, eine Schemasprache, die JSON Schema um ein Jahrzehnt vorausgeht, Kommentare, und eine Unterscheidung zwischen Attributen und Kindelementen. Nichts davon übersteht eine Rundreise durch JSON, eine JSON-nach-XML-Umwandlung erzeugt also gültiges XML, das strukturell einfacher ist als von Hand geschriebenes XML.

How to do this in code

Umwandeln im Code.

py Python
import json
from dicttoxml import dicttoxml

xml = dicttoxml(json.loads(text), custom_root='root', attr_type=False)

# attr_type=False turns off the type="str" attributes dicttoxml
# adds to every element by default.
js JavaScript
import { XMLBuilder } from 'fast-xml-parser';

const builder = new XMLBuilder({
  format: true,
  attributeNamePrefix: '@',
  ignoreAttributes: false,
});
const xml = builder.build(JSON.parse(text));
cs C#
using Newtonsoft.Json;

XNode node = JsonConvert.DeserializeXNode(json, "root");
var xml = node.ToString();

Häufige Fragen

Warum steht da ein xsi:nil-Attribut?
Weil XML kein null kennt. Die XML-Schema-Konvention markiert ein Element mit diesem Attribut als nil, wodurch null von einer leeren Zeichenkette unterscheidbar bleibt. Ein leeres <field/> könnte beides sein.
Kann ich JSON nach XML und wieder zurück umwandeln?
Für Dokumente, die innerhalb dieser Zuordnung bleiben, ja. Schlüsselnamen, die umgeschrieben werden mussten, kommen nicht zurück, und die Unterscheidung zwischen einem einelementigen Array und einem einzelnen Wert ebenfalls nicht, da beide ein Element erzeugen.