Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 8 Aktuelle »

WMS 1.1.4

Mit dieser Aktivität kann eine Abfrage auf einen Json-String ausgeführt werden. Die Abfrage gibt eine Liste mit den ermittelten Werten zurück. Für die Abfrage wird die Abfragesprache von JMESPath verwendet.

Json
Json (JavaScript Object Notation) ist ein offenes Dateiformat, welches häufig für den Datenaustausch mit APIs als Alternative zu XML verwendet wird.

Inhalt

Eigenschaften

Eingabe

Name

Beschreibung

Datentyp

Erforderlich

Json

Json-Struktur als String, z.B. aus HTTP-Request senden .

String

Abfragetext

JMESPath-Ausdruck.
Einfache Abfragen sind in unseren Beispielen beschrieben, eine detaillierte Beschreibung der Syntax finden Sie auf der Webseite von JMESPath.

String

Ausgabe

Name

Beschreibung

Datentyp

Ergebnis

Eine Liste mit den ermittelten Werten. Je nach Abfragetext kann die Liste einen einzelnen Wert oder einen Json-String beinhalten.

List<String>

Fehlermeldungen

Beschreibung

Fehlercode

Datentyp (Exception)

Syntaxfehler, wenn der Abfragetext nicht einem gültigen JMESPath-Ausdruck entspricht

ActivityException

Beispiele

Für die nachfolgenden Beispiele wird folgender Json-String verwendet:

{
  "bookstore": {
    "book": [
      {
        "-category": "cooking",
        "title": {
          "-lang": "en",
          "#text": "Everyday Italian"
        },
        "author": "Giada De Laurentiis",
        "year": "2005",
        "price": "30.00"
      },
      {
        "-category": "children",
        "title": {
          "-lang": "en",
          "#text": "Harry Potter"
        },
        "author": "J K. Rowling",
        "year": "2005",
        "price": "29.99"
      },
      {
        "-category": "web",
        "title": {
          "-lang": "en",
          "#text": "Learning XML"
        },
        "author": "Erik T. Ray",
        "year": "2003",
        "price": "39.95"
      }
    ]
  }
}

Ziel

Abfrage

Ergebnis

Titel aller Bücher ermitteln

bookstore.book[*].title."#text"

Wenn ein Identifier ein Leerzeichen oder Sonderzeichen enthält (hier “#text“, muss der Identifier in doppelten Hochkomma gesetzt werden.

  • Everyday Italian

  • Harry Potter

  • Learning XML

Autor des 2. Buches ermitteln

bookstore.book[1].author

Der Index einer Auflistung beginnt mit 0.

  • J K. Rowling

Alle Bücher des Jahres 2005 ermitteln

bookstore.book[?(@.year=='2005')]

Das Zeichen “@” bezeichnet das aktuelle Item innerhalb der Auflistung.

Das Jahr ist im Json als String angegeben und muss deshalb in der Abfrage - im Gegensatz zum Identifier - in einfachen Hochkommas (Apostroph, Hex 0x27) angegeben werden.

  • {
    "-category": "cooking",
    "title": {"-lang": "en", "#text": "Everyday Italian"},
    "author": "Giada De Laurentiis",
    "year": "2005",
    "price": 30.0
    }

  • {
    "-category": "children",
    "title": {"-lang": "en", "#text": "Harry Potter"},
    "author": "J K. Rowling",
    "year": "2005",
    "price": 29.99
    }

Alle Bücher, welche 30.00 oder mehr kosten

bookstore.book[?(@.price>=`30.0`)]

Der Wert des Preises (price) ist im Json nicht in Hochkommas angegeben und wird somit als Zahl interpretiert und nicht wie beim Jahr als Text.

Hier ist zu beachten, dass der Wert nicht mit einfachen Hochkommas (Apostroph, Hex 0x27) wie beim Text angegeben wird, sondern mit dem Hochkomma “Accent grave“ (Hex 0x60, nach den Tasten Shift + ` müssen Sie noch die Leertaste drücken, damit es sichtbar wird).

  • {
    "-category": "cooking",
    "title": {"-lang": "en", "#text": "Everyday Italian"},
    "author": "Giada De Laurentiis",
    "year": "2005",
    "price": 30.0
    }

  • {
    "-category": "web",
    "title": {"-lang": "en", "#text": "Learning XML"},
    "author": "Erik T. Ray",
    "year": "2003",
    "price": 39.95
    }

Alle Bücher, welche im Jahr 2005 erschienen sind und mehr als 30.00 kosten
(kombinierte Abfrage)

bookstore.book[?(@.year=='2005' && @.price>=`30.0`)]

  • {
    "-category": "cooking",
    "title": {"-lang": "en", "#text": "Everyday Italian"},
    "author": "Giada De Laurentiis",
    "year": "2005",
    "price": 30.0
    }

Durchschnittspreis aller Bücher berechnen

avg(bookstore.book[*].price)

  • 33.3133333333333

Eigenschaften der Buch-Struktur ermitteln

bookstore.book[0].keys(@)
bzw.
keys(bookstore.book[0])

  • -category

  • title

  • author

  • year

  • price

Verwandte Themen

  • Keine Stichwörter