XML- und JSON-Konvertierungsleitfaden: Konfigurationsdateien und API-Datenformat-Transformation

JSON

Kernunterschiede: XML vs JSON

Merkmal XML JSON
Datenformat Tag-basierte Auszeichnung Schlüssel-Wert-Paare
Attribute Ja (<node attr="val">) Nein (Attribute werden zu Feldern)
Namespaces Ja (xmlns) Nein
Kommentare Ja (<!-- -->) Nein
Arrays Implizit (wiederholte Elemente) Explizit ([])
Textknoten Gemischter Inhalt (Tags + Text) Einfache Zeichenkettenwerte

XML ist besser für dokumentenartige Daten (SVG, HTML, Konfigurationen). JSON ist besser für strukturierte Daten (API-Antworten).


Wie XML-Attribute auf JSON abgebildet werden

XML-Elemente können sowohl Attribute als auch Textinhalt haben — das ist der knifflige Teil der Konvertierung:

Einfaches Element

<person name="John" age="30"/>
{
  "person": {
    "@name": "John",
    "@age": "30"
  }
}

Konvention: Verwenden Sie das @-Präfix für XML-Attribute. Dies ist die häufigste Konvertierungsregel.

Gemischter Inhalt (Attribute + Text)

<price currency="USD">68.00</price>
{
  "price": {
    "@currency": "USD",
    "#text": "68.00"
  }
}

Verwenden Sie #text für den Textinhalt des Elements, um ihn von Attributen zu unterscheiden.


Array-Erkennung: Die häufigste Falle

In XML sind Arrays implizit — wiederholte Elemente mit demselben Namen bilden ein Array:

<books>
  <book>Three-Body Problem</book>
  <book>To Live</book>
</books>
{
  "books": {
    "book": ["Three-Body Problem", "To Live"]
  }
}

Problem: Bei einem einzelnen Element kann XML es nicht von einem Nicht-Array unterscheiden:

<books>
  <book>Three-Body Problem</book>
</books>

Dies könnte konvertiert werden zu:

{
  "books": {
    "book": "Three-Body Problem"
  }
}

Lösung: Im XML↔JSON-Tool aktivieren Sie „Array erzwingen" und geben Sie an, welche Elemente immer als Arrays behandelt werden sollen.


Namespace-Behandlung

XML-Namespaces haben keine direkte Entsprechung in JSON:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <m:GetPrice xmlns:m="http://example.com">
      <m:Item>123</m:Item>
    </m:GetPrice>
  </soap:Body>
</soap:Envelope>

Häufige Strategien:

Strategie Beschreibung Anwendungsfall
Präfix beibehalten soap:Body"soap:Body" SOAP/WSDL-Verarbeitung
Präfix entfernen soap:Body"Body" Einfache Fälle, keine Konflikte
Namespace-Schlüssel {soap}Body Gleiche Elementnamen aus verschiedenen Namespaces unterscheiden

Verwenden Sie den XML-Formatierer, um XML vor der Konvertierung aufzubereiten.


Verwendung des XML↔JSON-Tools

Schritt 1: Tool öffnen

Besuchen Sie das XML↔JSON-Tool und wählen Sie die Konvertierungsrichtung.

Schritt 2: Quelldaten eingeben

  • XML → JSON: XML-Zeichenfolge einfügen
  • JSON → XML: JSON-Zeichenfolge einfügen

Sie können die Eingabe vorher mit dem JSON-Formatierer oder XML-Formatierer verschönern.

Schritt 3: Konvertierungsoptionen konfigurieren

Option Beschreibung
Attributpräfix Attribute als @attr oder $attr abbilden
Textknotenschlüssel Textinhalt als #text oder _text abbilden
Array erzwingen Elementnamen angeben, die immer Arrays sein sollen
Namespaces Beibehalten / entfernen / transformieren

Schritt 4: Konvertierung ausführen

Klicken Sie auf „Konvertieren", überprüfen Sie das Ergebnis und kopieren Sie es.


Praktische Szenarien

Konfigurationsdatei-Migration

Viele Legacy-Projekte verwenden XML-Konfigurationen (Spring, Maven). Neue Projekte bevorzugen YAML/JSON:

pom.xml → package.json (Abhängigkeitsinformationen)
spring-config.xml → application.json (Bean-Konfiguration)

SOAP-API zu REST

SOAP-Antworten sind XML; sie müssen für das Frontend in JSON konvertiert werden:

SOAP-XML-Antwort → JSON → Frontend-Rendering

SVG-Metadaten-Extraktion

SVG ist XML-Format; Metadaten zu JSON für programmatische Verarbeitung extrahieren:

<svg width="100" height="100"> → {"svg": {"@width": "100", "@height": "100"}}

JSON-zu-XML-Überlegungen

Bei der Konvertierung von JSON zu XML beachten Sie:

Überlegung Beschreibung
Wurzelelement JSON muss einen einzelnen Wurzelschlüssel haben
Schlüsselnamengültigkeit XML-Tagnamen dürfen nicht mit einer Ziffer beginnen oder Leerzeichen enthalten
Array-Wrapping JSON-Arrays benötigen einen Wrapper-Elementnamen
Sonderzeichen <, >, & müssen als Entities maskiert werden

Häufige Probleme

Problem Ursache Lösung
Einzelelement nicht als Array konvertiert XML kann Einzelelement nicht von Array unterscheiden „Array erzwingen" aktivieren
Attribute verloren Konvertierungsregeln ohne Attributpräfix Attributpräfix-Einstellung prüfen
Namespace-Konflikt Gleichnamige Elemente in verschiedenen Namespaces Namespace-Präfixe beibehalten
JSON-zu-XML-Fehler Ungültiger Schlüsselname Schlüssel gemäß XML-Spezifikation umbenennen
Gemischter Inhalt verloren Textknotenschlüssel nicht korrekt zugeordnet #text-Konfiguration prüfen

Zusammenfassung

Die XML↔JSON-Konvertierung ist ein häufiges Bedürfnis bei Datenformatmigration und API-Integration. Das Verständnis der drei Kernprobleme — Attributzuordnung, Array-Erkennung und Namespaces — ist der Schlüssel zur korrekten Konvertierung. Das XML↔JSON-Tool bietet flexible Konvertierungsoptionen, während JSON-Formatierer und XML-Formatierer Ihren Formatkonvertierungs-Workflow vervollständigen.

#XML#JSON#格式转换#API#配置