Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Status
colourYellow
titleWMS 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.

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#DEEBFF

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

Inhalt
minLevel1
maxLevel7

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:

Codeblock
languagejson
{
  "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"

Info

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

Info

Der Index einer Auflistung beginnt mit 0.

  • J K. Rowling

Alle Bücher des Jahres 2005 ermitteln

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

Info

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.

Image Added

(deutschsprachige QWERTZ-Tastaturblegung)

  • {
    "-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`)]

Info

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).

Image Added

(deutschsprachige QWERTZ-Tastaturblegung)

  • {
    "-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

Http-Requests

Nach Stichwort filtern (Inhalt nach Stichwort)
showLabelsfalse
showSpacefalse
cqllabel = "http" and ancestor = "150667523"

Weitere Beispiele

Nach Stichwort filtern (Inhalt nach Stichwort)
showLabelsfalse
showSpacefalse
cqllabel = "json" and label in ( "tutorial" , "hilfe" , "beispiel" )