Command Palette

Search for a command to run...

JSON zu XML-Konverter: So ordnen Sie Schlüssel, Attribute und Arrays richtig zu

JSON zu XML-Konverter: So ordnen Sie Schlüssel, Attribute und Arrays richtig zu

T
Toolz Team
|Jul 20, 2026|16 min lesen

Teil der Sammlung Datenwerkzeuge

JSON zu XML

Konvertieren Sie JSON sofort in gut ausgebildete XML. Ordnen Sie Objektschlüsseln Elementen, @-Präfix-Schlüssel zu Attributen und #Text zu Inhalt zu, erweitern Sie Arrays in wiederholte Tags und exportieren Sie minimiertes oder hübsch gedrucktes XML. 100% clientseitig.

JSON zu XML verwenden

Die beiden Modelle reihen sich nicht ein: RFC 8259 Definiert sechs JSON-Typen ohne Attribute, während XML 1.0 Attribute, Namensräume und geordnete gemischte Inhalte hat, diese Richtung zu gehen bedeutet, zu wählen, was mit dem Unterschied zu tun ist.

Als ich zum ersten Mal JSON-Daten in ein System schicken musste, das nur XML sprach, tat ich das Naive: Ich schrieb die Winkelklammern in einem Texteditor von Hand. Es war ein Lieferanten-Feed, der einen SOAP-ähnlichen Umschlag erwartete, und meine Quelle war ein aufgeräumtes JSON-Array, das aus einer Laravel-API kam. Zwanzig Minuten später hatte ich irgendwo um den vierzigsten Datensatz herum einen schließenden Tag nicht angepasst und der empfangende Parser warf einen "-Schrott nach dem Dokumentenelement" Fehler, der mir nichts verriet wohin. An diesem Abend habe ich eine Lektion gelernt, die ich seitdem auf jede Integration angewendet habe: Die Konvertierung zwischen JSON und XML ist kein kreativer Akt. Es handelt sich um ein Mapping-Problem mit einer kleinen Anzahl von Regeln, und in dem Moment, in dem man diese Regeln aufschreibt, wird das Ganze mechanisch.

Diese Anleitung ist die Version dieser Zuordnung, die ich I & #39;d hatte. Ich baue [Toolz.dev] (/, und eines der Tools dort ist browserbasiert JSON-zu-XML-Konverter Das gilt genau für die untenstehenden Konventionen Aber der Sinn dieses Artikels ist nicht der Button - it' s Verständnis wieso Ein Schlüssel wird zum Element, warum ein @- präfixed key wird zu einem attribut, und warum ein array in wiederholte tags statt in eine nummerierte liste umwandelt, sobald diese drei ideen klicken, können sie jedes json in xml von hand konvertieren, wenn es sein muss, und sie können die ausgabe debuggen, wenn ein nachgeschaltetes system es ablehnt.

tl; dr: Um JSON in XML zu konvertieren, ordnen Sie jeden Objektschlüssel jeweils einem Element zu @- vorbestimmter Schlüssel zu einem Attribut auf seinem übergeordneten Element und dem #text Schlüssel zum Element&#39; s Textinhalt Erweitern Sie jedes Array in wiederholte Geschwisterelemente, die den Schlüssel teilen&#39;s name. Escape &, <, und > Im Text (plus " In Attributwerten), und bereinigen Sie jeden Schlüssel, der & #39; t ein legaler XML-Name ist Machen Sie es im Browser, damit Nutzlasten mit Token oder Kundendaten niemals Ihren Computer verlassen.

Warum sollten Sie JSON überhaupt in XML konvertieren?

JSON hat vor Jahren den Web-API-Krieg gewonnen, und wenn man seine Tage in React, Laravel oder Node verbringt, könnte man vernünftigerweise fragen, wann man & #39; jemals XML überhaupt brauchen würde Die Antwort lautet: ständig, nur nicht an den Orten, an denen man hinschaut XML ist die Verkehrssprache einer riesigen installierten Basis von Systemen, die vor der JSON-Ära entstanden sind und nirgendwo hingehen SOAP-Webdienste - immer noch das Rückgrat von Banken, Versicherungen, Logistik und Regierungsintegrationen - tragen ihre Nutzlasten in XML. RSS- und Atom-Feeds sind XML. Sitemaps sind XML. Android-Layouts, .docx und .xlsx Internals (Office Open XML), SVG, RSS-Podcast-Feeds und unzählige B2 B-EDI-Börsen sind alle XML.

Das reale Szenario ist also fast immer die gleiche Form: Sie haben Daten in JSON, weil das & #39; Was Ihr Stapel produziert, und Sie brauchen es in XML, weil das&#39; s was die andere Seite verlangt Vielleicht pushen Sie&#39; Produktdaten in einen Marktplatz, der nur einen XML-Feed akzeptiert Vielleicht wollen Sie&#39; eine API-Antwort in einen SOAP-Body umwickeln Vielleicht erzeugen Sie&#39; einen RSS-Feed aus einem JSON-InhaltexportIn jedem Fall wollen Sie nicht #39; jedes Mal die Serialisierung neu erfinden - Sie wollen eine vorhersehbare Regel, die jede JSON-Struktur in gültiges XML verwandelt, damit Sie sie automatisieren und aufhören können, darüber nachzudenken.

There&#39; s auch ein leiserer Grund: Lesbarkeit beim Debuggen Wenn Sie&#39; auf einen tief verschachtelten JSON-Blob starren, der versucht, eine Hierarchie zu verstehen, lässt die Konvertierung in eingerücktes XML manchmal die Baumstruktur herausspringen, weil XML&#39; s Tags öffnen/schließen das Nesting explizit machen, und zwar so, dass JSON&#39; s spannt don&#39;t. Ich behalte die JSON-zu-XML-Konverter und das Gegenteil XML-zu-JSON-Konverter Öffnen Sie in benachbarten Tabs häufiger als I&#39;d vermutet haben.

Wie genau ordnet JSON XML zu?

Hier ist der Kern davon Es gibt nur vier Regeln, und alles andere ist ein Detail.

Regel 1: Objektschlüssel werden zu Elementen. Ein JSON-Objekt { "book": { "title": "..." } } wird <book><title>...</title></book>. Der Schlüssel ist der Tag-Name; Der Wert ist das, was hineingeht.

Regel 2: @- vorfixierte Schlüssel werden zu Attributen. XML-Elemente können Attribute tragen, und JSON hat kein natives Konzept davon, also brauchen wir eine Konvention Das weit verbreitete - und das, was mein Tool verwendet - ist ein Präfixzeichen, @ Standardmäßig Also { "book": { "@id": "bk101", "title": "..." } } wird <book id="bk101"><title>...</title></book>. Attribute können nur primitive Werte (Strings, Zahlen, Booleans) enthalten, niemals verschachtelte Strukturen, was mit der tatsächlichen Funktionsweise von XML-Attributen übereinstimmt.

Regel 3: Die #text Schlüssel wird Textinhalt. Wenn ein Element benötigt beide Attribute und Text - denken <title lang="en">Hello</title> - man kann & #39; t das mit einem einfachen Zeichenfolgenwert ausdrücken, denn die Zeichenfolge lässt keinen Raum für das Attribut Die Konvention ist eine reservierte Taste, die #text: { "title": { "@lang": "en", "#text": "Hello" } }. Wenn ein Element nur Text und keine Attribute hat, können Sie überspringen #text Und verwenden Sie einfach einen einfachen Zeichenfolgenwert.

Regel 4: Arrays werden zu wiederholten Elementen. Das ist diejenige, die sich am häufigsten irrt XML hat keinen Array-Typ Eine Liste von Dingen wird als wiederholte Geschwisterelemente mit demselben Tag-Namen ausgedrückt Also { "tags": { "tag": ["computer", "web"] } } wird <tags><tag>computer</tag><tag>web</tag></tags> - nicht <tag>0</tag> oder irgendein indexbasierter Unsinn Das Array&#39;s Schlüssel Liefert den wiederholten Tag-Namen.

Setzen Sie diese auf einem realistischen Objekt zusammen und die Ausgabe entspricht genau den Erwartungen eines nachgeschalteten XML-Parsers:

{
  "catalog": {
    "book": [
      { "@id": "bk101", "author": "Gambardella, Matthew", "price": 44.95 },
      { "@id": "bk102", "author": "Ralls, Kim", "price": 5.95 }
    ]
  }
}

wird

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <price>44.95</price>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <price>5.95</price>
  </book>
</catalog>

Beachten Sie, dass der einzelne Schlüssel der obersten Ebene, catalog, wurde das document&#39; s root-Element That&#39; s bedacht: ein wohlgeformtes XML-Dokument muss genau eine Wurzel haben Wenn Ihr JSON bereits über einen einzigen Umhüllungsschlüssel verfügt, diesen Schlüssel ist Die Wurzel Wenn es tut&#39; t - wenn Sie dem Konverter ein Multi-Key-Objekt oder ein blankes Array übergeben - das Tool umhüllt alles unter einem konfigurierbaren Root-Element (root Standardmäßig bleibt die Ausgabe also gut geformt.

Wie sieht es mit Flucht und ungültigen Namen aus?

Zwei Dinge brechen leise mehr Conversions als jeder Nistkäfer: unausgeflüchtete Sonderzeichen und illegale Elementnamen.

Entkommend. XML reserviert eine Handvoll Zeichen Inside element text, &, <, und > Geschrieben werden müssen als &amp;, &lt;, und &gt;. Innerhalb eines doppelt zitierten Attributwertes müssen Sie zusätzlich dem doppelten Zitat als entkommen &quot;. Wenn Ihre JSON-Zeichenfolge enthält Tom & Jerry Und Sie lassen es roh in XML fallen, das bloße Ampere macht das Dokument fehlerhaft und der Parser stirbt. Ein korrekter Konverter entweicht automatisch, also "a < b & c" wird a &lt; b &amp; c In der Ausgabe und Rundreisen zurück zum Originaltext beim Parsen Dies ist kein optionaler Lack - it&#39; ist der Unterschied zwischen gültigem und ungültigem XML.

Elementnamen. XML hat strenge Regeln darüber, was ein Tag-Name enthalten darf Namen können&#39; t Leerzeichen enthalten, kann&#39; t mit einer Ziffer, einem Bindestrich oder einem Punkt beginnen und die meisten Satzzeichen ausschließen JSON-Schlüssel haben keine derartigen Einschränkungen - "first name", "123", und "total($)" Sind alle vollkommen legale JSON-Schlüssel und alle illegalen XML-Namen Ein Konverter, der dies ignoriert, produziert Dokumente, die kein Parser akzeptiert Der pragmatische Fix, und was mein Tool tut, ist zu bereinigen: Ersetzen Sie illegale Zeichen durch Unterstriche und setzen Sie einen Unterstrich voran, wenn ein Name mit einer Ziffer beginnt Also "123 bad" wird <_123_bad>. It&#39;s nicht glamourös, aber es garantiert die Ausgabeparsen, die den gesamten Punkt.

Wie verwende ich den browserbasierten Konverter?

Der Workflow auf Toolz.dev/tools/json-to-xml Spiegelt die oben genannten Regeln wider, mit einigen Optionen für die praktischen Edge-Cases.

Fügen Sie Ihren JSON in die Eingabe ein und drücken Sie Konvertieren Wenn Ihr JSON fehlerhaft ist, erhalten Sie einen klaren Analysefehler und keinen stillen Müll - ich lehne mich an den Browser & #39;s JSON.parse„Die Fehlermeldungen stimmen also mit dem überein, was Sie & #39; sehen. d in Ihrer Konsole Wählen Sie 2 oder 4 Einrückungsfelder, wenn Sie ein für Menschen lesbares Dokument zur Überprüfung wünschen, oder wählen Sie Minify aus, um das Ganze auf eine einzige Zeile zu klappen, wenn Sie & #39; es über das Kabel versenden und jedes Byte zählt (sonders SOAP-Anfragen und Feed-Nutzlasten). Legen Sie den Root-Elementnamen für den Fall fest, in dem Ihr JSON keinen einzelnen Wrapping-Schlüssel hat. Schalten Sie die XML-Deklaration um (<?xml version="1.0" encoding="UTF-8"?>() ein - oder aus, je nachdem, ob der Verbraucher einen Prolog erwartet Und entscheiden Sie, ob sich leere Knoten selbst schließen sollen als <tag/> Oder erweitern zu <tag></tag> - einige strenge Verbraucher kümmern sich.

Alles läuft clientseitig Der Konverter ist ein in TypeScript geschriebener abhängigkeitsfreier Serializer, kein Wrapper um eine Remote-API Das ist wichtiger als es klingt: API-Antworten und Konfigurationsdateien enthalten routinemäßig Zugriffstoken, Kundendatensätze und interne Identifikatoren sowie einen & quot; kostenlosen Online-Konverter & quot; dass POSTs Ihre Nutzlast an jemanden &#39;s-Server ein Datenleck ist, der darauf wartet, passiert Da dieser nie einen Netzwerkanruf abgibt, können Sie vertrauliche Daten sicher konvertieren und er arbeitet mit überhaupt keiner Verbindung. Wenn Sie über Datenschutz in Browsertools nachdenken - und wenn Sie mit anderen Personen umgehen & #39;s-Daten, sollte es so sein - ich habe mehr darüber in den Browser-Daten geschrieben Handbuch zum Datenschutzdrohen

JSON vs. XML: ein kurzer Vergleich

Es hilft, die beiden Formate beizubehalten&#39; Kompromisse im Blick, denn die Grund Die Zuordnung braucht Konventionen wie @ und #text Ist, dass XML Dinge ausdrücken kann JSON can&#39;t, und umgekehrt.

Aspekt json XML
Attribute Kein natives Konzept Erstklassig (<tag attr="v">)
Arrays / Listen Eingeboren [ ] Typ Wiederholte Geschwisterelemente
Kommentar Nicht erlaubt <!-- ... --> Unterstützt
Namensräume keine Vollständige Namespace-Unterstützung
Gemischter Inhalt (Text + Elemente) Unbeholfen Eingeboren
Schema / Validierung JSON Schema (Add-on) XSD, DTD, RELAX NG (reif)
Wortaufwand Kompakt Ausführlicher (Schließ-Tags)
Typische Verwendung heute Web-APIs, Konfiguration SEIFE, Feeds, Dokumente, Unternehmen

der @ Das Präfix dient zur Überbrückung von &quot; attributes&quot; Zeile; Die Regel mit wiederholten Tags überbrückt &quot;arrays&quot; Zeile; Und #text Überbrückt die & quot; mixed content&quot; Reihe. Sobald Sie die Abbildung als Brücke über diese spezifischen Lücken sehen, fühlt sie sich nicht mehr beliebig an.

Ist JSON-zu-XML-Rundtrip sauber?

Meistens ja - und das&#39;s von Design. Mein JSON zu XML und XML zu JSON Tools teilen sich das gleiche @ Attributpräfix und #text Inhaltsschlüssel, also XML → JSON und zurück konvertieren gibt im Allgemeinen das Originaldokument wieder Wenn Sie & #39; re eine Pipeline bauen, die Daten in beide Richtungen verschieben muss, lohnt es sich, sich auf diese Symmetrie zu verlassen.

Wo Roundtripping unscharf wird, ist der gleiche Ort, an dem jede JSON/XML-Zuordnung unscharf wird: Ordnung und gemischte Inhalte. JSON-Objekte sind offiziell ungeordnet, sodass ein Konverter möglicherweise nicht die genaue Geschwisterreihenfolge unterschiedlich benannter Elemente beibehält. XML, das Text und untergeordnete Elemente verschachtelt (<p>Hello <b>world</b>!</p>) hat #39; t eine saubere JSON-Darstellung und kommt als Näherung zurück Und ein Element, das manchmal einmal und manchmal mehrmals erscheint, ist mehrdeutig - ist es ein einzelner Wert oder ein Array von einem? diese aren&#39;t Bugs in irgendeinem bestimmten Tool; they&#39; sind inhärent mit der Tatsache, dass die beiden Datenmodelle don&#39; sich nicht perfekt überlappen Wissen, wo die Nähte sind, lässt Sie Ihr JSON so gestalten, dass die Konvertierung verlustfrei bleibt: Seien Sie konsequent, ob ein Ding immer ein Array ist, und vermeiden Sie gemischte Inhalte, wo Sie können.

Wenn Sie viel mit JSON arbeiten, lohnt es sich, it&#39; Es lohnt sich, fließend in der gesamten Conversionsfamilie zu arbeiten - ich habe diejenigen gesammelt, die ich am meisten in der Region erreiche Ultimative Anleitung zu JSON-Toolsund das breitere Anleitung für die Coding-Tools Umschläge, bei denen Formatwandler in einen täglichen Arbeitsablauf passen Für die umgekehrte Richtung und angrenzende Formate ist die JSON-zu-YAML-Konverter und eine Ebene JSON-Formater Satz abrunden.

Häufige Fehler bei der Konvertierung von JSON in XML

Ein paar Fallen I & #39; haben andere getroffen oder zugesehen:

Behandlung von Array-Indizes als Tag-Namen. Wenn Sie sehen <item0>, <item1> In jemandem&#39; s ausgegeben, haben sie den Konverter falsch gebaut Arrays werden Wiederholt Tags mit den Gleichen Name, entnommen aus dem Array&#39;s-Schlüssel.

Vergessen kann es nur eine Wurzel geben. Wenn Sie ein Objekt mit mehreren Tasten direkt an einen Serialisierer übergeben, ohne es zu umwickeln, werden mehrere Elemente der obersten Ebene erzeugt, was kein wohlgeformtes Dokument ist. Verpacken Sie es.

Überspringen von Escaping & quot; weil die Daten sauber aussehen. & quot; Es sieht sauber aus, bis eine Produktbeschreibung ein Ammersand oder ein enthält <. Immer fliehen; niemals annehmen.

Strukturierte Daten in Attribute einfügen. Attribute halten Primitive Wenn Sie versuchen, ein verschachteltes Objekt in ein @- vorfixed key, ein richtiger Konverter wird (und sollte) es fallen lassen oder ignorieren, weil dort&#39; s kein gültiges XML dafür Modellieren Sie es stattdessen als untergeordnetes Element.

Erweitert: Auswahl von Einrückung und Erklärung für den Verbraucher

Eine Gewohnheit, die mir bei Integrationspartnern immer wieder hin und her erspart hat: Passen Sie die Ausgabe an genau Zu dem, was der Verbraucher erwartet, dann stoppen Einige SOAP-Endpunkte lehnen ein Dokument ab, das eine Byte-Order-Markierung oder einen unerwarteten Prolog enthält; andere erfordern die <?xml ... ?> Deklaration und 415 Sie ohne Es Einige Feed-Validatoren wollen hübsch gedrucktes, eingerücktes XML für ihr eigenes Debugging; die meisten Produktionstransporte wollen es minifiziert Anstatt zu argumentieren, generiere ich die Variante, nach der die Spezifikation fragt. That&#39;s warum der Konverter die Einrückung (einschließlich einer Minify-Option), den Deklarationsumschalter und das Selbstschließverhalten als erstklassige Steuerelemente aufdeckt - sie&#39; re keine Dekoration, sie&#39; sind die Knöpfe, die bestimmen, ob ein wählerischer Verbraucher Ihr Dokument beim ersten Versuch akzeptiert.

FAQ

Wie konvertiere ich JSON in XML?

Fügen Sie Ihren JSON in den Editor ein und drücken Sie Konvertieren Objektschlüssel werden zu XML-Elementen, Arrays werden zu wiederholten Tags, und das Ergebnis erscheint kopier - oder downloadbereit Es gibt keinen Upload - die Konvertierung geschieht in Ihrem Browser.

Wie werden JSON-Attribute in XML dargestellt?

Konventionell wird jeder Objektschlüssel, der mit & quot; beginnt@&quot; Das Präfix wird als Attribut auf sein übergeordnetes Element geschrieben und nicht als untergeordnetes Element. Zum Beispiel {&quot;book&quot;: {&quot;@id&quot;:: &quot;bk101&quot; &quot;title&quot;:: &quot; &quot;}} wird .... Dies spiegelt wider, wie das XML-zu-JSON-Tool Attribute zurückliest.

Wie behandelt der Konverter JSON-Arrays?

Jedes Element eines Arrays wird als wiederholtes Geschwisterelement ausgegeben, das sich den Namen key&#39;s teilt. Also {&quot;tags&quot;: {&quot;tag&quot;: [&quot;a&quot;, &quot;b&quot;]}} produziert ab, so werden Listen herkömmlicherweise in XML ausgedrückt - es gibt keinen nummerierten Index oder Wrapper-Element pro Element.

Wofür ist der #Text-Schlüssel?

Wenn ein Element sowohl Attribute als auch Textinhalte benötigt, wird der Text unter dem &quot; #text&quot; Schlüssel gespeichert. {&quot;title&quot;: {&quot;@lang&quot;: &quot;en&quot;, &quot;#text&quot;:: &quot;Hello&quot;}} wird Hallo. Wenn ein Element nur Text und keine Attribute hat, können Sie stattdessen einen einfachen Zeichenfolgenwert verwenden.

Kann ich minimierte XML anstelle der eingerückten Ausgabe erhalten?

Ja. Setzen Sie die Einrückung auf 0 (Minify) und der Konverter gibt das gesamte Dokument in einer einzigen Zeile aus, ohne dass zwischen den Tags Leerzeichen liegen. Dies ist nützlich für SOAP-Anfragen oder Feeds, bei denen die Nutzlastgröße wichtig ist; schalten Sie bei Bedarf ein lesbares Dokument zurück auf 2 oder 4 Leerzeichen.

Was passiert mit Schlüsseln, die keine gültigen XML-Elementnamen sind?

XML-Elementnamen können keine Leerzeichen enthalten, nicht mit einer Ziffer, einem Bindestrich oder einem Punkt beginnen und die meisten Satzzeichen ausschließen. Schlüssel, die gegen diese Regeln verstoßen, werden bereinigt - ungültige Zeichen werden zu Unterstrichen und bei Bedarf wird ein führender Unterstrich hinzugefügt - die Ausgabe analysiert also immer, auch wenn Ihre JSON-Schlüssel nicht XML-freundlich waren.

Lässt sich JSON zu XML-Roundtrip mit dem XML-to-JSON-Tool?

Für die gemeinsamen Strukturen tut es Dieses Tool und das XML zu JSON Tool teilen sich das gleiche & quot;@&quot; Attributpräfix und & quot;#text&quot; Inhaltsschlüssel, so dass die Konvertierung von XML in JSON und zurück im Allgemeinen dasselbe Dokument wiedergibt Bestellunabhängige Details und gemischte Inhalte sind die üblichen Quellen für kleine Unterschiede, wie sie bei jeder XML/JSON-Zuordnung der Fall sind.

Ist es sicher, hier sensible JSON zu konvertieren?

Ja. Der Konverter ist einfaches JavaScript, das vollständig in Ihrem Browser ausgeführt wird - nichts, was Sie einfügen, wird an einen Server übertragen, protokolliert oder gespeichert. Das macht es sicher für API-Antworten, Konfigurationsdateien und Datensätze, die Token oder persönliche Daten enthalten, und es funktioniert weiterhin ohne Netzwerkverbindung.


Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!