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 unterstützt der Adapter verschiedene XML-Formate:
-
-
Abstrahiert von der JSON-Struktur, sodass JSON-Keys und -Werte werden über Attribut- und Elementwerte abgebildet
-
-
Domänenspezifisches XML
-
Adaptiert die JSON-Struktur, sodass JSON-Keys werden zu Elementnamen und JSON-Werte werden zu Elementwerten
-
-
XSLT 3.0 spezifisches XML
-
Abstrahiert von der JSON-Struktur (ähnlich wie Generisches XML) in ein XSLT-spezifisches Format
-
Vergleich:
-
JSON
-
Generisches XML
-
Domänen XML
-
XSLT 3.0
{
"distance": {
"desc": "Distances between several cities, in kilometers.",
"updated": "2014-02-04T18:50:45",
"uptodate": true,
"author": null,
"cities": {
"Brussels": [
{
"to": "London",
"distance": 322
},
{
"to": "Paris",
"distance": 265
}
]
}
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<object name="distance">
<string name="desc">Distances between several cities, in kilometers.</string>
<string name="updated">2014-02-04T18:50:45</string>
<boolean name="uptodate">true</boolean>
<null name="author"/>
<object name="cities">
<array name="Brussels">
<object>
<string name="to">London</string>
<number name="distance">322</number>
</object>
<object>
<string name="to">Paris</string>
<number name="distance">265</number>
</object>
</array>
</object>
</object>
</object>
<?xml version="1.0" encoding="UTF-8"?>
<distance>
<uptodate>true</uptodate>
<cities>
<Brussels>
<distance>322</distance>
<to>London</to>
</Brussels>
<Brussels>
<distance>265</distance>
<to>Paris</to>
</Brussels>
</cities>
<author>null</author>
<updated>2014-02-04T18:50:45</updated>
<desc>Distances between several cities, in kilometers.</desc>
</distance>
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.w3.org/2005/xpath-functions">
<map key="distance">
<string key="desc">Distances between several cities, in kilometers.</string>
<string key="updated">2014-02-04T18:50:45</string>
<boolean key="uptodate">true</boolean>
<null key="author"/>
<map key="cities">
<array key="Brussels">
<map>
<string key="to">London</string>
<number key="distance">322</number>
</map>
<map>
<string key="to">Paris</string>
<number key="distance">265</number>
</map>
</array>
</map>
</map>
</map>
Zum Konfigurieren des JSON Adapters siehe Dialogbeschreibung JSON Adapter - Einstellungen.
Generisches XML
|
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 |
|---|---|
|
|
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
-
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.
-