Skip to content

JSON zu XML Konverter

JSON einfügen und sofort XML erhalten. Konvertiert Objekte, Arrays und @_-Attribute im Browser — nichts wird hochgeladen. Kostenlos, privat, keine Anmeldung erforderlich.

Kein Tracking Läuft im Browser Kostenlos
Optionen · 2 Leerzeichen · JSON → XML
Einrückung
0 Zeichen
XML Ausgabe
0 Zeilen
Reviewed for XML 1.0 well-formedness, @_/#text convention correctness, and root normalization accuracy — Go Tools Engineering Team · May 29, 2026

Was ist JSON-zu-XML-Konvertierung und wie funktioniert sie?

JSON (JavaScript Object Notation) und XML (Extensible Markup Language) sind beides strukturierte Datenformate, haben aber grundlegend unterschiedliche Modelle: JSON ist ein Baum aus Objekten, Arrays, Zeichenketten, Zahlen, booleschen Werten und null ohne Konzept von Attributen oder Dokumentwurzel-Einschränkungen; XML ist ein Baum aus Elementen, die Attribute und Textinhalt tragen können, und das Dokument muss genau ein Wurzelelement haben. Die Konvertierung von JSON zu XML erfordert einen Satz von Konventionen, um diese Modellunterschiede zu überbrücken.

Dieses Werkzeug verwendet die am weitesten verbreitete Konvention — dieselbe, die von fast-xml-parser (Node.js), xmltodict (Python) und JAXB (Java) verwendet wird — in umgekehrter Richtung:

**1. Wurzelelement-Normalisierung.** Der wichtigste Unterschied zwischen JSON und XML ist die Wurzel-Einschränkung. JSON hat kein Wurzel-Konzept; XML erfordert genau eines. Der Konverter behandelt vier Fälle automatisch. Ein Objekt mit einem einzigen Schlüssel verwendet diesen Schlüssel als XML-Wurzel: { "config": {...} } → .... Ein Objekt mit mehreren Schlüsseln wird in eingeschlossen: { "a": 1, "b": 2 } → 12. Ein Array auf oberster Ebene wird als ... eingeschlossen. Ein primitiver Wert wird als Wert eingeschlossen.

**2. @_-Präfix → XML-Attribute.** JSON-Schlüssel mit dem Präfix @_ werden zu XML-Attributen des umgebenden Elements. { "element": { "@_id": "42", "@_class": "primary" } } erzeugt . Dieses Präfix ist die kanonische Konvention — kein gültiger XML-Elementname beginnt mit @, sodass es niemals eine Kollision mit Kindelelement-Namen gibt.

**3. #text → Elementtextinhalt.** Wenn ein Element sowohl Attribute als auch Textinhalt benötigt, wird der Text unter dem #text-Schlüssel gespeichert: { "price": { "@_currency": "USD", "#text": "29.99" } } → 29.99. Elemente mit nur Textinhalt (ohne @_-Schlüssel) werden ohne diese Indirektion zu einfachen Textelementen.

**4. Arrays → wiederholte gleichnamige Geschwisterelemente.** XML erlaubt mehrere Kindelemente mit demselben Namen; JSON verwendet Arrays für geordnete Listen. Ein JSON-Array unter einem Schlüssel erzeugt wiederholte Kindelemente, die den Schlüsselnamen wiederverwenden: { "items": ["a", "b"] } erzeugt ab (die beiden -Elemente sind Geschwister unter dem Elternelement). Wenn die gesamte JSON-Eingabe ein Array auf oberster Ebene ist, wird ein -Wrapper hinzugefügt und jedes Element wird zu einem -Kindelement — ist ein fester Fallback-Name, der nur in diesem Fall verwendet wird.

**5. Symmetrisch mit XML-zu-JSON.** Die hier verwendeten @_- und #text-Konventionen sind exakt dieselben, die vom Begleit-XML zu JSON Konverter verwendet werden. Das bedeutet, ein JSON → XML → JSON-Round-Trip bewahrt Attribute, Textinhalt und Elementstruktur — solange die JSON-Eingabe den @_/#text-Konventionen folgt.

**Wann JSON zu XML konvertieren?** Die häufigsten Szenarien sind: (1) Daten an einen Legacy-SOAP- oder XML-basierten Webdienst senden, der einen XML-Anfrage-Body erfordert; (2) XML-Konfigurationsdateien (Spring, Maven, Ant, Android-Ressourcen) aus JSON-Daten generieren; (3) sitemap.xml oder RSS-Feed-XML aus JSON-Inhaltsdaten erzeugen; (4) Interoperabilität mit Enterprise-Systemen (ERP, CRM, EDI), die XML konsumieren; (5) SVG oder andere XML-basierte Grafikformate programmatisch aus JSON-Daten generieren. Für die Formatierung und Validierung des resultierenden XML nutzen Sie den XML-Formatierer.

// Convert JSON to XML in Node.js using fast-xml-parser
import { XMLBuilder } from 'fast-xml-parser';

const data = {
  catalog: {
    product: {
      '@_id': 'P01',
      '@_category': 'electronics',
      name: 'Wireless Headphones',
      price: {
        '@_currency': 'USD',
        '#text': '79.99'
      }
    }
  }
};

const builder = new XMLBuilder({
  attributeNamePrefix: '@_',   // @_ keys become XML attributes
  textNodeName: '#text',       // #text key becomes element text content
  ignoreAttributes: false,     // process @_ attribute keys
  format: true,                // pretty-print with indentation
  indentBy: '  ',              // 2-space indent
});

const xml = builder.build(data);
console.log(xml);
// <catalog>
//   <product id="P01" category="electronics">
//     <name>Wireless Headphones</name>
//     <price currency="USD">79.99</price>
//   </product>
// </catalog>

Hauptfunktionen

Live-Konvertierung

Die XML-Ausgabe wird sofort aktualisiert, während Sie JSON tippen oder einfügen — keine Schaltfläche „Konvertieren” nötig. Große Eingaben (>200 KB) schalten automatisch in den manuellen Modus um, um den Browser reaktionsfähig zu halten.

Automatische Wurzelnormalisierung

XML erfordert genau ein Wurzelelement. Objekte mit einem Schlüssel verwenden ihren Schlüssel als Wurzel; Objekte mit mehreren Schlüsseln werden in eingeschlossen; Arrays auf oberster Ebene werden zu ...; primitive Werte werden zu Wert — immer gültiges XML.

@_-Attribut- und #text-Konvention

Mit @_ präfixierte Schlüssel werden zu XML-Attributen; der #text-Schlüssel wird zum Elementtextinhalt. Dies entspricht der fast-xml-parser- und xmltodict-Konvention und macht die Ausgabe symmetrisch mit dem Begleit-XML-zu-JSON-Konverter.

Array zu wiederholten Elementen

JSON-Arrays unter einem Schlüssel erzeugen wiederholte Kindelemente, die den Schlüsselnamen ohne Singularisierung wiederverwenden. { "items": [1, 2, 3] } ergibt drei -Geschwister. Ein Array-Eingang auf oberster Ebene wird als ... eingeschlossen — ist dabei ein fester literaler Name.

100 % browserbasierte Privatsphäre

Die gesamte Konvertierung läuft lokal in Ihrem Browser mit JavaScript. Ihr JSON — einschließlich Zugangsdaten, interner Konfigurationen und sensibler Payloads — wird niemals an einen Server gesendet, niemals protokolliert und niemals gespeichert.

Symmetrischer Round-Trip mit XML zu JSON

Die @_- und #text-Konventionen sind mit dem Begleit-XML-zu-JSON-Konverter geteilt. Ein JSON → XML → JSON-Round-Trip bewahrt Attribute, Textinhalt und verschachtelte Strukturen zuverlässig.

Beispiele

API-Antwortobjekt

{"user":{"id":42,"name":"Alice Kim","email":"alice@example.com","role":"admin","address":{"city":"Seoul","country":"KR"}}}

Ein JSON-Objekt mit einem einzigen Schlüssel, bei dem der oberste Schlüssel das XML-Wurzelelement wird. Das verschachtelte address-Objekt erzeugt ein

-Kindelement mit - und -Kindern. Da das äußere Objekt genau einen Schlüssel hat ("user"), wird kein Wrapper hinzugefügt — "user" selbst ist das Wurzelelement. Zahlen wie 42 werden wörtlich als Textinhalt ausgegeben: 42.

Array auf oberster Ebene

[{"id":1,"name":"Widget A","price":9.99},{"id":2,"name":"Widget B","price":14.99},{"id":3,"name":"Widget C","price":4.49}]

Wenn die gesamte Eingabe ein JSON-Array ist (nicht in einem Objekt eingeschlossen), erzeugt der Konverter .... Jedes Array-Element wird zu einem -Kindelement — "item" ist ein fester literaler Wrapper-Name, der ausschließlich für Arrays auf oberster Ebene verwendet wird. Dies ist der einzige Fall, in dem erscheint; Arrays unter einem Objektschlüssel verwenden stattdessen den Namen dieses Schlüssels für jedes Element.

Objekt mit Attributen und Textinhalt

{"catalog":{"product":{"@_id":"P01","@_category":"electronics","name":"Wireless Headphones","price":{"@_currency":"USD","#text":"79.99"}}}}

Mit @_ präfixierte Schlüssel werden zu XML-Attributen des Elements: @_id wird zu id="P01" und @_category zu category="electronics" am -Element. Der #text-Schlüssel wird zum Textinhalt des Elements — das price-Objekt erzeugt also 79.99. Dies ist ein sauberes Round-Trip mit dem XML-zu-JSON-Konverter, der dieselben @_- und #text-Konventionen verwendet.

Anleitung

  1. 1

    JSON einfügen

    Geben Sie Ihre JSON-Daten in das Eingabefeld oben ein oder fügen Sie sie ein. Sie können auch auf „Beispiel laden” klicken, um ein Beispiel auszuprobieren — ein API-Antwortobjekt, einen Array-Payload oder ein Objekt mit @_-Attributen und #text.

  2. 2

    Live-XML-Ausgabe ansehen

    XML erscheint sofort im Ausgabebereich. Objekte mit einem Schlüssel verwenden ihren Schlüssel als Wurzel; Objekte mit mehreren Schlüsseln werden in eingeschlossen; @_-präfixierte Schlüssel werden zu Attributen; Arrays werden zu wiederholten Kindelementen. Passen Sie die Einrückung (2 oder 4 Leerzeichen) nach Bedarf an.

  3. 3

    Kopieren oder Herunterladen

    Klicken Sie auf „Kopieren”, um das XML in die Zwischenablage zu übernehmen, oder auf „Herunterladen”, um es als .xml-Datei zu speichern. Um das Ergebnis zu validieren oder neu zu formatieren, fügen Sie es in den XML-Formatierer ein.

Häufige Konvertierungsfehler

Objekt mit mehreren Schlüsseln erhält unerwarteten -Wrapper

Wenn Ihr oberstes JSON mehrere Schlüssel hat, schließt die Ausgabe sie alle in ein. Das ist korrektes XML (das ein einzelnes Wurzel erfordert), entspricht aber möglicherweise nicht Ihrem Zielschema. Formen Sie Ihr JSON zu einem Objekt mit einem einzelnen Schlüssel um, um den Wurzel-Elementnamen zu kontrollieren.

✗ Falsch
// Input: { "status": 200, "data": { "id": 1 } }
// Output: <root><status>200</status><data><id>1</id></data></root>
// Root is <root> — may not match your schema
✓ Richtig
// Wrap in a named key to control the root element
// Input: { "response": { "status": 200, "data": { "id": 1 } } }
// Output: <response><status>200</status><data><id>1</id></data></response>

Array auf oberster Ebene erhält -Wrapper

Ein JSON-Array auf oberster Ebene hat keinen Elementnamen, daher wird es als ... eingeschlossen. Wenn Sie sinnvolle Tag-Namen möchten, schließen Sie das Array zuerst in ein benanntes Objekt ein.

✗ Falsch
// Input: [{ "id": 1 }, { "id": 2 }]
// Output: <root><item><id>1</id></item><item><id>2</id></item></root>
// Tag names are generic
✓ Richtig
// Wrap in a named key for meaningful tag names
// Input: { "products": [{ "id": 1 }, { "id": 2 }] }
// Output: <root><products><id>1</id></products><products><id>2</id></products></root>
// Each array element reuses the key name "products" as its tag

@_-Präfix bei Attributschlüsseln fehlt

Um ein XML-Attribut zu erzeugen, muss der JSON-Schlüssel mit @_ präfixiert sein. Ohne das Präfix wird der Schlüssel als Kindelement behandelt, nicht als Attribut.

✗ Falsch
// Input: { "tag": { "id": "42", "name": "Alice" } }
// Output: <tag><id>42</id><name>Alice</name></tag>  ← id is a child element
✓ Richtig
// Use @_ prefix for attributes
// Input: { "tag": { "@_id": "42", "name": "Alice" } }
// Output: <tag id="42"><name>Alice</name></tag>  ← id is an attribute

Element mit Attributen und Text — #text fehlt

Wenn ein Element sowohl XML-Attribute als auch Textinhalt haben soll, müssen Sie den #text-Schlüssel für den Text verwenden. Ohne ihn hat der Text keinen Platz und das Element ist leer oder erzeugt einen Fehler.

✗ Falsch
// Input: { "price": { "@_currency": "USD", "value": "29.99" } }
// Output: <price currency="USD"><value>29.99</value></price>
// Text is a child element, not text content
✓ Richtig
// Use #text for element text content
// Input: { "price": { "@_currency": "USD", "#text": "29.99" } }
// Output: <price currency="USD">29.99</price>  ← text content

JSON-Schlüssel mit XML-ungültigen Zeichen

XML-Elementnamen dürfen nicht mit einer Ziffer beginnen und keine Leerzeichen, Doppelpunkte (außer für Namespace-Präfixe) oder die meisten Sonderzeichen enthalten. Wenn Ihre JSON-Schlüssel diese Zeichen enthalten, ist die XML-Ausgabe fehlerhaft. Benennen Sie problematische Schlüssel vor der Konvertierung um oder bereinigen Sie sie in einem Nachverarbeitungsschritt.

✗ Falsch
// JSON key starts with digit — invalid XML element name
// Input: { "1stItem": "value" }
// Output: <1stItem>value</1stItem>  ← invalid XML
✓ Richtig
// Use a valid XML element name
// Input: { "firstItem": "value" }
// Output: <firstItem>value</firstItem>  ← valid XML

Sonderzeichen in Werten nicht maskiert

XML-Textinhalt darf keine rohen <, >, & oder "-Zeichen enthalten — sie müssen als <, >, & und " maskiert werden. Der Konverter maskiert diese Zeichen im Elementtextinhalt und in Attributwerten automatisch. Wenn nachgelagerte Verarbeitung sie doppelt maskiert, stellen Sie sicher, dass Ihr XML-Parser rohe XML-Bytes konsumiert und keine bereits maskierten Inhalte erneut maskiert.

✗ Falsch
// JSON: { "query": "name = 'Alice' & role = 'admin'" }
// Converter outputs: <query>name = 'Alice' &amp; role = 'admin'</query>
// If double-processed: &amp;amp; — consumer is re-escaping
✓ Richtig
// Converter output is correct — consume it as XML, not as a raw string
// <query>name = 'Alice' &amp; role = 'admin'</query>
// XML parser decodes to: name = 'Alice' & role = 'admin'

Häufige Anwendungsfälle

SOAP- und Legacy-XML-Webdienste aufrufen
Erstellen Sie den JSON-Payload in Ihrer Anwendung, konvertieren Sie ihn zu XML und senden Sie ihn per POST an den SOAP-Endpunkt. Das vermeidet das manuelle Aufbauen von XML-Zeichenketten und ermöglicht die Arbeit mit den Daten in einer nativen JSON-Struktur bis zu dem Moment, in dem Sie sie für den Legacy-Dienst serialisieren müssen.
XML-Konfigurationsdateien generieren
Spring, Maven, Ant, Tomcat und Android verwenden alle XML-Konfigurationsformate. Generieren oder transformieren Sie Konfigurationsdaten als JSON — einfacher zu vergleichen und versionieren — und konvertieren Sie dann für die Bereitstellung zu XML.
Sitemap- und RSS-Feed-XML erzeugen
Content-Management-Systeme und statische Site-Generatoren speichern Seiten-Metadaten oft als JSON. Konvertieren Sie diese Metadaten zu sitemap.xml oder RSS-Feed-XML, um sie an Suchmaschinen zu übermitteln oder Inhalte an Feed-Reader zu syndizieren.
Enterprise-Datenintegration (EDI / ERP / CRM)
ERP-Systeme (SAP, Oracle), CRM-Plattformen und EDI-Netzwerke tauschen häufig Daten in XML aus. Konvertieren Sie JSON-Exporte aus modernen REST-APIs zu XML, um diese Systeme ohne den Aufbau eines eigenen XML-Serialisierers zu versorgen.
Android-Ressourcendateien
Android-Zeichenkettenressourcen, Layout-Constraints und Manifest-Einträge sind allesamt XML. Generieren oder aktualisieren Sie Ressourcendateien programmatisch aus JSON-Datenquellen und konvertieren Sie zum erforderlichen XML-Format für das Android-Build-System.
SVG- und Vektorgrafik-Generierung
SVG ist XML. Erstellen Sie SVG-Strukturen als JSON-Daten — Pfade, Formen, Farben, Transformationen — und konvertieren Sie dann zu XML, um gültige SVG-Dateien für Web, Druck oder Vektorbearbeitungswerkzeuge zu erzeugen.

Technische Details

RFC-8259-konformes JSON-Parsing
JSON-Eingaben werden mit dem nativen JSON.parse() des Browsers geparst, der vollständig RFC-8259-konform ist. Er liefert genaue Syntaxfehlermeldungen mit Best-Effort-Positionsinformationen (Zeile und Spalte) und verarbeitet alle JSON-Datentypen: Zeichenketten, Zahlen, boolesche Werte, null, Arrays und Objekte.
Benutzerdefinierter rekursiver JSON-zu-XML-Serialisierer
Nach dem Parsen durchläuft ein benutzerdefinierter rekursiver Serialisierer den JSON-Baum. Objektschlüssel, die mit @_ beginnen, werden als XML-Attribute am Elternelement ausgegeben. Der #text-Schlüssel wird als Textinhalt des Elements ausgegeben. Einfache Objektschlüssel werden zu Kindelementen. Array-Werte erzeugen wiederholte gleichnamige Geschwisterelemente. Sonderzeichen (<, >, &, ", ') in Textinhalten und Attributwerten werden zu ihren XML-Entity-Referenzen maskiert.
Wurzelnormalisierung
Da XML genau ein Wurzelelement erfordert, wendet der Serialisierer vor dem Aufbau des Dokuments eine Wurzelnormalisierung an: Objekte mit einem Schlüssel verwenden den Schlüssel als Wurzel; Objekte mit mehreren Schlüsseln und Arrays auf oberster Ebene erhalten einen synthetischen -Wrapper. Dies stellt sicher, dass die Ausgabe unabhängig von der Eingabeform immer wohlgeformtes XML ist.
100 % browserbasiert — kein Upload, kein Server
Alle Verarbeitung läuft in der JavaScript-Engine Ihres Browsers. Zu keinem Zeitpunkt werden Daten über das Netzwerk übertragen. Eingaben größer als 200 KB schalten automatisch vom Live-Modus in den manuellen Modus um (erfordert einen expliziten Klick auf „Konvertieren”), um den Browser reaktionsfähig zu halten und ein Blockieren des Hauptthreads bei intensiver Serialisierung zu verhindern.

Best Practices

Wurzelelement mit einem Objekt mit einem einzigen Schlüssel kontrollieren
Der sauberste Weg, sinnvolles XML zu erzeugen, ist sicherzustellen, dass Ihr oberstes JSON ein Objekt mit einem einzigen Schlüssel ist, dessen Schlüssel der gewünschte Wurzel-Elementname ist. Mehrschlüsselige Daten unter einem benannten Schlüssel einzuschließen gibt Ihnen ein semantisch bedeutungsvolles Wurzel statt des generischen -Wrappers.
@_ und #text für attributlastiges XML verwenden
Wenn Ihr Ziel-XML-Schema viele Attribute verwendet (häufig in Konfigurationsdateien, SVG und SOAP-Envelopes), formen Sie Ihr JSON vor der Konvertierung so um, dass es @_-präfixierte Schlüssel und #text verwendet. Das resultierende XML entspricht dann genau dem Zielschema ohne Nachbearbeitung.
Arrays für sinnvolle Tag-Namen in benannten Objekten einschließen
Ein Array auf oberster Ebene erzeugt das generische ...-Muster, bei dem ein fester literaler Name ist. Das Array unter einem benannten Schlüssel einzuschließen — { "products": [...] } — erzeugt wiederholte -Elemente (der Schlüsselname wird für jedes Array-Element wiederverwendet) unter einem -Wrapper. Das gibt einen domainbedeutsamen Tag-Namen und ist für XML, das von einem Schema geparst oder validiert wird, fast immer vorzuziehen.
Ausgabe mit dem XML-Formatierer validieren
Fügen Sie nach der Konvertierung die XML-Ausgabe in den XML-Formatierer ein, um die Wohlgeformtheit zu validieren, die Einrückung zu prüfen und strukturelle Probleme zu identifizieren, bevor das XML an einen nachgelagerten Dienst gesendet oder in die Versionskontrolle eingecheckt wird.
JSON-Schlüssel vor der Konvertierung bereinigen
XML-Elementnamen müssen mit einem Buchstaben oder Unterstrich beginnen und dürfen keine Leerzeichen oder die meisten Sonderzeichen enthalten. Wenn Ihre JSON-Schlüssel aus einer externen Quelle stammen (einem Datenbankspaltennamen, einem API-Feldnamen oder Benutzereingaben), prüfen Sie sie auf XML-Namens-Gültigkeit vor der Konvertierung, um fehlerhafte Ausgabe zu vermeiden.

Häufig gestellte Fragen

Werden meine JSON-Daten bei der Nutzung dieses Werkzeugs an einen Server gesendet?
Nein. Die gesamte Konvertierung findet vollständig in Ihrem Browser mithilfe von JavaScript statt. Ihr JSON wird niemals über das Netzwerk übertragen, niemals auf einem Server gespeichert und niemals protokolliert oder analysiert. Das macht das Werkzeug sicher für JSON-Payloads mit API-Zugangsdaten, Datenbankkonfigurationen, internen Service-Daten oder anderen sensiblen Inhalten. Sie können dies überprüfen, indem Sie den Netzwerk-Tab Ihres Browsers öffnen — beim Einfügen oder Konvertieren von JSON werden keinerlei Anfragen ausgelöst.
Wie entscheidet das Werkzeug, was das XML-Wurzelelement ist?
XML erfordert genau ein Wurzelelement; JSON kennt diese Einschränkung nicht. Der Konverter wendet folgende Regeln an: (1) Ein Objekt mit einem einzigen Schlüssel verwendet diesen Schlüssel als Wurzelelement — { "user": { ... } } wird zu .... (2) Ein Objekt mit mehreren Schlüsseln (zwei oder mehr Schlüssel auf oberster Ebene) wird in ein -Element eingeschlossen, damit alle Schlüssel zu Kindern eines einzelnen Wurzels werden. (3) Ein Array auf oberster Ebene wird als ... eingeschlossen, wobei jedes Array-Element zu einem -Kindelement wird. (4) Ein primitiver Wert (Zeichenkette, Zahl, boolescher Wert, null) auf oberster Ebene wird zu Wert. Diese Regeln garantieren, dass die Ausgabe immer wohlgeformtes XML mit genau einem Wurzel ist.
Warum wird ein JSON-Objekt mit mehreren Schlüsseln in eingeschlossen?
XML ist ein Dokumentformat mit strikter Einzelwurzel-Anforderung — ein gültiges XML-Dokument muss genau ein oberstes Element haben. JSON-Objekte können beliebig viele oberste Schlüssel haben, sodass es keinen einzelnen Schlüssel gibt, der als Wurzel dienen könnte, wenn Ihr JSON mehrere oberste Schlüssel hat (z. B. { "status": 200, "data": {...}, "meta": {...} }). Das Einschließen in ist die sicherste und vorhersagbarste Konvention. Wenn Sie einen anderen Wurzel-Elementnamen möchten, formen Sie Ihr JSON vor der Konvertierung zu einem Objekt mit einem einzelnen Schlüssel um — z. B. { "response": { "status": 200, "data": {...} } }.
Wie wird ein JSON-Array auf oberster Ebene zu XML konvertiert?
Ein Array auf oberster Ebene wird als ...... eingeschlossen. Jedes Array-Element wird zu einem -Kindelement — "item" ist ein fester literaler Name, der nur für Arrays auf oberster Ebene verwendet wird. Das unterscheidet sich von Arrays, die unter einem Objektschlüssel verschachtelt sind: Wenn Sie { "products": [...] } schreiben, wird jedes Array-Element zu einem -Kindelement (der Schlüsselname wird wiederverwendet), nicht zu . Wenn Sie benutzerdefinierte Tag-Namen für ein Array auf oberster Ebene möchten, schließen Sie es zuerst in ein benanntes Objekt ein: { "products": [...] } gibt Ihnen wiederholte -Elemente.
Wie konvertiere ich JSON-Schlüssel zu XML-Attributen?
Präfixieren Sie den Schlüssel mit @_, und der Konverter gibt ihn als XML-Attribut statt als Kindelement aus. Zum Beispiel erzeugt { "tag": { "@_id": "42", "@_lang": "en", "#text": "Hello" } } Hello. Die @_-Präfix-Konvention ist dieselbe, die von fast-xml-parser (Node.js) und xmltodict (Python) verwendet wird, sodass die Ausgabe konsistent mit diesen Bibliotheken einen Round-Trip vollzieht. Das ist auch die Konvention des Begleit-XML zu JSON Konverters.
Wofür wird der #text-Schlüssel verwendet?
Wenn ein Element sowohl XML-Attribute als auch Textinhalt benötigt, können Sie den Text nicht einfach einem Kindelement zuordnen — er muss der eigene Textknoten des Elements sein. Der #text-Schlüssel in Ihrem JSON wird zu diesem Textinhalt. Beispiel: { "price": { "@_currency": "USD", "#text": "29.99" } } erzeugt 29.99. Hat ein Objekt nur einen #text-Schlüssel und keine @_-Schlüssel, erzeugt es dennoch ein einfaches Textelement: { "note": { "#text": "hello" } } wird zu hello.
Beeinflusst die Einrückung die XML-Struktur?
Nein. Einrückung ist rein optisch — sie ändert, wie das XML für die menschliche Lesbarkeit formatiert ist, beeinflusst aber nicht die Elementstruktur, Attributwerte oder Textinhalte. Wählen Sie 2 Leerzeichen für kompakte Ausgabe oder 4 Leerzeichen für besser lesbare Ausgabe. Beide erzeugen semantisch identisches XML. Die meisten XML-Parser behandeln reine Leerzeichen-Textknoten zwischen Elementen als ignorierbares Leerzeichen, sodass eingerücktes und minimiertes XML für Parsing-Zwecke äquivalent sind.
Wie wird ein innerhalb eines Objekts verschachteltes JSON-Array zu XML konvertiert?
Ein JSON-Array-Wert unter einem Schlüssel erzeugt wiederholte gleichnamige Kindelemente, die den Schlüsselnamen für jedes Element wiederverwenden. Zum Beispiel erzeugt { "items": [1, 2, 3] } drei -Geschwister — nicht . Entsprechend erzeugt { "products": [{"name":"A"},{"name":"B"}] } zwei -Elemente, die jeweils ein -Kindelement enthalten. Der Schlüsselname wird ohne Singularisierung für jedes Array-Element verwendet. Der literale Name erscheint nur, wenn die gesamte JSON-Eingabe ein Array auf oberster Ebene ist (siehe oben), wo ein fester Fallback-Name ist.
Wie konvertiere ich XML zurück zu JSON?
Verwenden Sie den Begleit-XML zu JSON Konverter. Er wendet dieselben @_- und #text-Konventionen in umgekehrter Richtung an: XML-Attribute werden zu @_-präfixierten JSON-Schlüsseln, Elementtextinhalt kombiniert mit Attributen wird zu einem #text-Schlüssel, und wiederholte gleichnamige Geschwisterelemente werden zu einem JSON-Array. Die beiden Werkzeuge sind für Round-Trip-Anwendungsfälle symmetrisch.
Kann ich die XML-Ausgabe validieren oder formatieren?
Ja — fügen Sie die XML-Ausgabe in den XML-Formatierer ein, um die Wohlgeformtheit zu validieren, die Einrückung anzupassen oder zu minimieren. Der XML-Formatierer ist das richtige Werkzeug zum Prüfen und Nachbearbeiten des XML, nachdem dieser Konverter es erzeugt hat.
Gibt es eine Dateigrößenbeschränkung für JSON-Eingaben?
Es gibt keine feste Größenbeschränkung, aber Eingaben größer als 200 KB schalten automatisch vom Live-Modus in den manuellen Modus um. Im manuellen Modus erscheint eine Schaltfläche „Konvertieren” und die Konvertierung läuft nur, wenn Sie darauf klicken — das hält den Browser reaktionsfähig bei intensiver Serialisierung. Für sehr große JSON-Dateien (mehrere Megabyte) sollten Sie Befehlszeilenwerkzeuge für bessere Leistung in Betracht ziehen: node -e "const {XMLBuilder}=require('fast-xml-parser');console.log(new XMLBuilder({attributeNamePrefix:'@_'}).build(JSON.parse(require('fs').readFileSync('in.json','utf8'))))" oder ein äquivalentes Python-Skript mit xmltodict.
Welche JSON-Typen werden unterstützt?
Alle sechs JSON-Typen werden unterstützt. Objekte werden zu XML-Elementen mit Kindelementen. Arrays werden zu wiederholten gleichnamigen Geschwisterelementen. Zeichenketten, Zahlen, boolesche Werte und null werden zu Elementtextinhalt. Boolesche Werte und null werden als ihre literale Zeichenkettendarstellung serialisiert: true, false und leerer Inhalt für null. Keine Typumwandlung wird angewendet — Zahlen werden genau so in XML-Textinhalt geschrieben, wie sie im JSON erscheinen, unter Beibehaltung von Dezimalstellen und Präzision.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →