JSON Adapter
Verwendung
Der JSON Adapter konvertiert Nachrichten, die strukturierte Daten in der JavaScript Object Notation (JSON) enthalten, in das XML-Format bzw. Nachrichten vom XML- in das JSON-Format.
Bei der Konvertierung verwendet der Adapter ein spezielles XML-Format, das durch ein entsprechendes Schema vorgegeben ist.
Zum Konfigurieren des JSON Adapters siehe Dialogbeschreibung JSON Adapter - Einstellungen.
Bei der XML-JSON-Konvertierung müssen Sie die XML-Eingangsnachricht im geforderten XML-Format bereitstellen.
Zur Schemaprüfung steht im Repository das passende XML-Schema |
XML-Eingangsnachricht für XML-JSON Adapter erzeugen
Der JSON Adapter erwartet für die Verarbeitungsrichtung XML > JSON eine Eingangsnachricht in einem bestimmten XML-Format, welches mit dem bereitgestellten XML-Schema validiert werden kann.
Um Ihre Eingangsnachricht in dieses Format zu konvertieren, verwenden Sie das im Repository hinterlegte XML-Schema und ein XSLT Converter Modul.
Das XML-Schema finden Sie im Repository unter Global > System > Schemas > Json > json.xsd. |
So gehen Sie vor
-
Erstellen Sie einen XSLT Converter zum Erzeugen der Eingangsnachricht.
-
Verbinden Sie den XSLT Converter mit dem JSON Adapter.
-
Öffnen Sie den XSLT Converter zum Bearbeiten.
-
Öffnen Sie im Bereich XML Zieldatei das -Menü und wählen Sie Öffnen von > Repository. Der Repository Explorer wird angezeigt.
-
Öffnen Sie das Verzeichnis Global > System > Schemas > Json und markieren Sie die Schema-Datei
json.xsd
. -
Klicken Sie auf OK. Der Explorer schließt sich und die Schema-Datei wird angezeigt.
-
Erzeugen Sie auf Basis dieser Schema-Datei eine Nachricht im erforderlichen Format:
Siehe
Der XSLT Converter erzeugt das spezielle XML-Format, das der JSON Adapter erwartet.
Konvertierungsregeln für JSON > XML
Zur Konvertierung des JSON-Formats in XML verwendet der JSON Adapter die folgenden Konvertierungsregeln.
Da jedes gültige JSON-Dokument mit einem Objekt oder einem Array beginnt, besteht auch im XML-Format das root
- Element entweder aus einem <object>
- oder einem <array>
-Element.
object
Ein JSON-Objekt` wird zu einem `<object>
-Element.
Das Objekt kann wiederum eine ungeordnete, durch Kommata getrennte Liste von Eigenschaften enthalten.
Die Eigenschaften werden in der Form Schlüssel : Wert `angegeben. Der Schlüssel ist stets eine Zeichenkette und
wird im XML-Ergebnis auf ein `name
-Attribut abgebildet.
Der Wert kann ein Objekt, ein Array, ein boolescher Wert, eine Zeichenkette, eine Zahl oder null sein.
JSON | XML |
---|---|
|
|
array
Ein JSON-Array` wird zu einem `<array>
-Element.
Es enthält eine durch Kommata geteilte, geordnete Liste von Werten gleichen oder verschiedenen Typs.
Wenn es sich um den Wert einer JSON-Objekteigenschaft handelt, beinhaltet das XML-Ergebnis ein name
-Attribut, das dem Schlüssel der Eigenschaft entspricht.
JSON | XML |
---|---|
|
|
boolean
Ein boolescher Wert in JSON wird zu einem <boolean>
-Element.
Wenn es sich um den Wert einer JSON-Objekteigenschaft handelt, beinhaltet das XML-Ergebnis ein name
-Attribut, das dem Schlüssel der Eigenschaft entspricht.
Der Inhalt des <boolean>
-Elements kann true
oder false
sein.
JSON | XML |
---|---|
|
|
string
Eine Zeichenkette als Wert in JSON wird zu einem <string>
-Element.
Wenn es sich um den Wert einer JSON-Objekteigenschaft handelt, beinhaltet das XML-Ergebnis ein name
-Attribut, das dem Schlüssel der Eigenschaft entspricht.
Der string
-Inhalt ist eine Zeichenkette.
JSON | XML |
---|---|
|
|
number
Ein numerischer Wert in JSON wird zu einem <number>
-Element.
Wenn es sich um den Wert einer JSON-Objekteigenschaft handelt, beinhaltet das XML-Ergebnis ein name
-Attribut, das dem Schlüssel der Eigenschaft entspricht.
Der number
-Inhalt ist eine Zahl.
JSON | XML |
---|---|
|
|
null
Ein null-Wert in JSON wird zu einem <null>
-Element.
Wenn es sich um den Wert einer JSON-Objekteigenschaft handelt, beinhaltet das XML-Ergebnis ein name
-Attribut, das dem Schlüssel der Eigenschaft entspricht.
JSON | XML |
---|---|
|
|
Beispiel: Konvertierung JSON nach XML
Eingangsnachricht im JSON-Format
Das Beispiel zeigt exemplarisch die JSON-Struktur:
{
"widget": {
"debug": "on",
"window": {
"title": "Sample Confabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center"
}
}
}
Ausgangsnachricht im XML-Format
Die folgende Ausgabe ist das Ergebnis der Konvertierung von JSON nach XML:
<?xml version="1.0" encoding="UTF-8" ?>
<object>
<object name="widget">
<string name="debug">on</string>
<object name="window">
<string name="title">Sample Confabulator Widget</string>
<string name="name">main_window</string>
<number name="width">500</number>
<number name="height">500</number>
</object>
<object name="image">
<string name="src">Images/Sun.png</string>
<string name="name">sun1</string>
<number name="hOffset">250</number>
<number name="vOffset">250</number>
<string name="alignment">center</string>
</object>
<object name="text">
<string name="data">Click Here</string>
<number name="size">36</number>
<string name="style">bold</string>
<string name="name">text1</string>
<number name="hOffset">250</number>
<number name="vOffset">100</number>
<string name="alignment">center</string>
</object>
</object>
</object>
Dialogbeschreibung JSON Adapter - Einstellungen
Dieser Dialog bietet folgende Optionen:
Grundeinstellungen
-
Verarbeitungsmodus
-
JSON to XML
Konvertiert Eingangsnachrichten im JSON-Format in ein gemäß dem XML-Schema valides XML-Format.
-
XML to JSON
Konvertiert Daten aus dem vorgegebenen XML-Format in ein JSON-Format. Die XML-Eingangsnachricht können Sie mithilfe eines XSLT Converter Moduls erzeugen, siehe XML-Eingangsnachricht für XML-JSON Adapter erzeugen.
Der Adapter gibt stets ein in UTF-8 kodiertes JSON-Format aus.
-
XML-Konvertierungstyp
-
Konvertierungsmodus
-
Generic XML
Wählen Sie die Option Generic XML, um Generic XML zu verwenden.
-
Domänen-spezifisches XML
Wählen Sie die Option Domänen-spezifisches XML, um ein domänen-spezifisches XML zu verwenden.
Wenn Sie domänen-spezifisches XML zum Konvertieren einer Eingangsnachricht verwenden, empfehlen wir dringend, domänen-spezifisches XML auch für das Konvertieren derselben Nachricht als Ausgangsnachricht zu verwenden.
-
XSLT 3.0 konformes XML
Wählen Sie die Option XSLT 3.0 konformes XML, um XSLT 3.0 konformes XML zu verwenden.
Für den Verarbeitungsmodus JSON to XML gelten folgende Einschränkungen:
-
JSON-Texte müssen in geschweifte Klammern
{ }
eingeschlossen sein. -
Der JSON-Text darf nicht mit einem Array
[ ]
beginnen. -
JSON-Tags werden nicht auf XML-Konformität geprüft.
-
-
-
Name des Root-Elements (verfügbar nur für den Verarbeitungsmodus JSON to XML und nur für Domänen-spezifisches XML)
Zum Angeben des Root-Elements, z.B.:
root