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 json.xsd zur Verfügung.

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

  1. Erstellen Sie einen XSLT Converter zum Erzeugen der Eingangsnachricht.

  2. Verbinden Sie den XSLT Converter mit dem JSON Adapter.

  3. Öffnen Sie den XSLT Converter zum Bearbeiten.

  4. Öffnen Sie im Bereich XML Zieldatei das module guide 954 1-Menü und wählen Sie Öffnen von > Repository. Der Repository Explorer wird angezeigt.

  5. Öffnen Sie das Verzeichnis Global > System > Schemas > Json und markieren Sie die Schema-Datei json.xsd.

  6. Klicken Sie auf OK. Der Explorer schließt sich und die Schema-Datei wird angezeigt.

  7. 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
{
  "Company" : "Virtimo"
}
<object>
    <string name="Company">Virtimo</string>
</object>

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
{
  "phoneNumbers": [
    "323 123-1111",
    "423 345-2222"
  ]
}
<array name="phoneNumbers">
    <string>323 123-1111</string>
    <string>423 345-2222</string>
</array>

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
{
  "remote" : false
}
<boolean name="remote">false</boolean>

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
{
  "name" : "Hello World"
}
<string name="name">Hello World</string>

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
{
  "width" : 15.5
}
<object>
    <number name="width">15.5</number>
</object>

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
{
  "furtherDetails" : null
}
<object>
    <null name="furtherDetails"/>
</object>

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