jsonata

JSONata – Überblick und Beispiele für JSON Daten

Florian Zyprian

JSONata ist eine leistungsstarke Daten-Transformations-Sprache, die zum Transformieren und Abfragen von JSON-Daten verwendet wird. Sie bietet eine einfache, aber flexible Syntax zum Filtern und Transformieren von Daten im JSON-Format. In diesem Tutorial werden die Grundlagen von JSONata behandelt und gezeigt, wie Sie es verwenden können, um JSON-Daten zu manipulieren und abzufragen.

Was ist JSONata?

JSONata ist eine Abfrage- und Transformations-Sprache, die verwendet wird, um JSON-Daten zu manipulieren und zu transformieren. Sie wurde von IBM entwickelt und ist nun ein Open-Source-Projekt. JSONata bietet eine einfache und intuitive Syntax, mit der Sie Daten aus JSON-Dokumenten extrahieren, filtern und transformieren können.

JSONata ist besonders nützlich für die Arbeit mit komplexen JSON-Datenstrukturen, wie sie in Webdiensten und APIs verwendet werden. Mit JSONata können Sie Daten aus diesen Strukturen einfach extrahieren und transformieren, was die Arbeit mit ihnen in Ihren Anwendungen erleichtert.

Einstieg in JSONata

Bevor wir uns in die Details von JSONata stürzen, werfen wir zunächst einen Blick darauf, wie Sie damit beginnen können. Der einfachste Weg, JSONata zu verwenden, ist die Verwendung des Online-JSONata-Evaluators, mit dem Sie mit JSONata-Ausdrücken experimentieren und die Ergebnisse in Echtzeit sehen können.

Um den Online-JSONata-Evaluator zu verwenden, navigieren Sie einfach zur folgenden URL:

https://try.jsonata.org/

Sobald Sie den Evaluator geöffnet haben, können Sie mit JSONata-Ausdrücken experimentieren. Der Evaluator bietet einen JSON-Editor auf der linken Seite, in dem Sie Ihre JSON-Daten eingeben können, und einen JSONata-Ausdruckseditor auf der rechten Seite, in dem Sie Ihre JSONata-Ausdrücke eingeben können.

Grundlegende JSONata-Syntax

JSONata-Ausdrücke bestehen aus einer Kombination von Operatoren und Funktionen, mit denen Sie Daten aus JSON-Dokumenten extrahieren und transformieren können. Hier sind einige grundlegende Syntaxregeln, die Sie beim Arbeiten mit JSONata beachten sollten:

  • JSONata-Ausdrücke sind in geschweifte Klammern {} eingeschlossen.
  • JSONata-Ausdrücke können Literalwerte wie Zeichenketten und Zahlen enthalten.
  • JSONata-Ausdrücke können Variablen enthalten, die mit einem $-Symbol beginnen.
  • JSONata-Ausdrücke können Funktionen enthalten, die mit dem Funktionsnamen gefolgt von einer Reihe von Klammern () aufgerufen werden.

JSONata-Funktionen

JSONata bietet eine große Anzahl von integrierten Funktionen, die Sie zum Manipulieren und Transformieren von JSON-Daten verwenden können. Hier sind einige der am häufigsten verwendeten Funktionen:

  • $map – Diese Funktion ermöglicht es Ihnen, ein Array von Werten mithilfe eines bestimmten Ausdrucks zu transformieren.
  • $filter – Diese Funktion ermöglicht es Ihnen, ein Array von Werten basierend auf einem bestimmten Ausdruck zu filtern.
  • $sort – Diese Funktion ermöglicht es Ihnen, ein Array von Werten basierend auf einem bestimmten Ausdruck zu sortieren.
  • $reduce – Diese Funktion ermöglicht es Ihnen, ein Array von Werten mithilfe eines bestimmten Ausdrucks auf einen einzelnen Wert zu reduzieren.
  • $merge – Diese Funktion ermöglicht es Ihnen, zwei oder mehr Objekte in ein einzelnes Objekt zusammenzuführen.

JSONata Beispiele

Jetzt, da Sie ein grundlegendes Verständnis von JSONata-Syntax und -Funktionen haben, werfen wir einen Blick auf ein paar Beispiele, wie Sie es verwenden können, um JSON-Daten zu manipulieren und zu transformieren.

Beispiel 1 – Extrahieren von Daten aus JSON

Nehmen wir an, Sie haben folgende JSON-Daten:

{
  "name": "John Doe",
  "age": 30,
  "email": "[email protected]",
  "phone": {
    "home": "555-1234",
    "work": "555-5678"
  },
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  }
}

Sie können die folgende JSONata-Ausdruck verwenden, um den Namen, die E-Mail-Adresse und die Telefonnummer zu extrahieren:

{
  "name": name,
  "email": email,
  "phone": {
    "home": phone.home
  }
}

In dem obigen Beispiel verwenden wir geschweifte Klammern {}, um ein neues Objekt mit drei Eigenschaften zu definieren: Name, E-Mail und Telefon. Wir verwenden dann Variablen (name, email, phone), um die entsprechenden Werte aus den Eingabe-JSON-Daten zu extrahieren.

Beachten Sie, dass wir die Punkt-Notation verwenden, um auf verschachtelte Werte in den Telefon- und Adressobjekten zuzugreifen. Zum Beispiel bezieht sich phone.home auf den Wert der Home-Eigenschaft im Telefonobjekt.

Beispiel 2: Filtern von Daten aus JSON Nehmen wir an, Sie haben folgende JSON-Daten, die eine Liste von Mitarbeitern darstellen:

Beispiel 2 – Filtern von Daten aus JSON

Nehmen wir an, Sie haben folgende JSON-Daten, die eine Liste von Mitarbeitern darstellen:

[  {    "name": "John Doe",    "age": 30,    "department": "Sales"  },  {    "name": "Jane Smith",    "age": 40,    "department": "Marketing"  },  {    "name": "Bob Johnson",    "age": 25,    "department": "Engineering"  }]

Sie können die folgende JSONata-Ausdruck verwenden, um die Liste der Mitarbeiter zu filtern und nur diejenigen zu enthalten, die in der Abteilung Verkauf arbeiten:

$[department="Sales"]

In dem obigen Ausdruck verwenden wir die Filterfunktion $, um die Liste der Mitarbeiter basierend auf einer Bedingung zu filtern. Die Bedingung wird mit der Punkt-Notation spezifiziert, um auf die Abteilungseigenschaft zuzugreifen, gefolgt von einem Gleichheitszeichen (=) und dem String „Sales“.

Beispiel 3 – Transformation von Daten aus JSON

Nehmen wir an, Sie haben folgende JSON-Daten, die eine Liste von Produkten darstellen:

[  {    "name": "Product 1",    "price": 10  },  {    "name": "Product 2",    "price": 20  },  {    "name": "Product 3",    "price": 30  }]

Sie können die folgende JSONata-Ausdruck verwenden, um die Liste der Produkte zu transformieren und eine neue Eigenschaft hinzuzufügen

$map($, function($product) {
  $product {
    "priceWithTax": $product.price * 1.1
  }
})

In der obigen Ausdrucksweise nutzen wir die Funktion $map, um jedes Produkt in der Liste zu transformieren. Wir übergeben die gesamte Liste der Produkte mit dem $-Symbol und verwenden eine anonyme Funktion, um zu definieren, wie jedes Produkt transformiert werden soll.

Innerhalb der anonymen Funktion verwenden wir die geschweiften Klammern {}, um ein neues Objekt mit den vorhandenen Eigenschaften des Produkts und einer neuen Eigenschaft namens „priceWithTax“ zu definieren. Wir verwenden die Punktnotation, um auf die Preis-Eigenschaft des Produkts zuzugreifen, und multiplizieren sie mit 1,1, um den Preis mit Steuern zu berechnen.

Konfuzio Document API und JSONata

Konfuzio Document API kann bei der Arbeit mit JSON- und JSONata-Dokumenten helfen, insbesondere bei der Analyse von Dokumenten, die strukturierte Daten enthalten, wie beispielsweise Rechnungen, Quittungen oder Tabellen. Die API kann diese Daten automatisch extrahieren und in JSON-Format konvertieren, das dann mit JSONata weiterverarbeitet werden kann.

Durch die Verwendung von JSONata und der Konfuzio Document API können Entwickler schnell und einfach komplexe Datenstrukturen aus Dokumenten extrahieren, filtern und transformieren, was Zeit und Mühe spart und die Effizienz verbessert.

Fazit zu JSONata

In diesem Tutorial haben wir die Grundlagen von JSONata behandelt und Ihnen gezeigt, wie Sie es verwenden können, um JSON-Daten zu manipulieren und abzufragen. Wir haben uns die grundlegende Syntax von JSONata-Ausdrücken sowie einige der am häufigsten verwendeten Funktionen angesehen. Außerdem haben wir Beispiele dafür gegeben, wie Sie JSONata verwenden können, um Daten aus JSON-Dokumenten zu extrahieren, zu filtern und zu transformieren.

JSONata ist ein leistungsstarkes Tool, mit dem Sie einfacher mit komplexen JSON-Datenstrukturen arbeiten können. Mit JSONata können Sie komplexe Datentransformationen mit nur wenigen Zeilen Code durchführen. Wir hoffen, dass Ihnen dieses Tutorial geholfen hat, mit JSONata zu beginnen, und Sie dazu inspiriert hat, seine Möglichkeiten weiter zu erkunden.

Zusätzlich kann Ihnen die Konfuzio Document API dabei helfen, Dokumente in JSON und JSONata zu bearbeiten und zu verwalten. Mit der API können Sie beispielsweise Dokumente in JSON konvertieren und dann mithilfe von JSONata-Abfragen bestimmte Daten daraus extrahieren oder transformieren. So können Sie schnell und einfach große Mengen an Dokumenten verarbeiten und analysieren.

Über mich

Weitere Artikel

Federated Learning for Model Optimization

Federated Learning – Gemeinsame Performance trotz separater Daten

Die Genauigkeit von Machine Learning steht und fällt mit den verwendeten Daten. Für deren erfolgreiche Nutzung gilt in der Regel:...

Zum Artikel
Document Scan Integration

Dokumente scannen und in Workflows integrieren

In der heutigen, digitalisierten Geschäftswelt ist es für Unternehmen unerlässlich, eine Multichannel-Strategie zu haben, um Dokumente zu erhalten. Die Dokumente...

Zum Artikel
Bill of Lading BoL

Bill of Lading – Ein Dokument lenkt die Weltwirtschaft

Hinter den Kulissen des Welthandels, in denen gewaltige Frachtschiffe die Meere durchkreuzen und unzählige Container mit unbekannten Inhalten transportieren, verbirgt...

Zum Artikel
Arrow-up