XML- und JSON-Konvertierungsleitfaden: Konfigurationsdateien und API-Datenformat-Transformation
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
#textfü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.