Mit dem Internet und der allgemeinen Vernetzung von Computersystemen ist seit jeher der Bedarf an Datenaustausch gestiegen. Für Systeme im Web ist dabei die Plattformunabhängigkeit sehr wichtig. Mit JSON (Java Script Object Notation) hat sich für den Datenaustausch zwischen webbasierten Systemen ein sehr leichtgewichtiges, menschen- und maschinenlesbares Datenformat etabliert. Alles Wichtige für den Einsatz in der Praxis und die wichtigsten Fragen zu JSON finden Sie hier einfach erklärt.
Inhaltsverzeichnis
- Was ist JSON?
- Wie funktioniert JSON?
- Was ist ein JSON-Node?
- Welche Vorteile bietet JSON?
- Welchen Zusammenhang gibt es zwischen JSON und Java?
- Welche Einsatzbereiche und praktischen Nutzen gibt es?
- Wie funktioniert JSON in der Industrie?
- Geräte und Dienste
- JSON und XML
- JSON und MQTT
- JSON in NoSQL
- Beispiel für Java Script Object Notation
- Einfache JSON Kommunikation in der Praxis
1. Was ist JSON?
JSON ist ein komplett unabhängiges Datenformat ohne Bindung an die JavaScript-Sprache. Gleichzeitig ist JSON mit seiner sehr einfachen Struktur und der Kodierung im Unicode Zeichensatz das ideale Format, um Daten zwischen Systemen auszutauschen. Es wird zwischen Anwendungen immer als Ganzes ausgetauscht. Für die menschliche Bearbeitung eines JSON Dokuments ist es am einfachsten, wenn das Dokument als Datei im Dateisystem vorliegt. Hier wird im Normalfall die Dateiendung “*.JSON” verwendet. Der Inhalt eines JSON Dokuments ist grundsätzlich Objekt-orientiert aufgebaut.
2. Wie funktioniert JSON?
Die Formatierung des Inhalts in einem JSON Dokument muss einer strikten Struktur-Vorgabe folgen. Die ursprüngliche Spezifikation stammt von Douglas Crockford und ist als Definition dokumentiert. Ein JSON Dokument beginnt und endet immer mit ‘{‘ und ‘}’. Zwischen den geschweiften Klammern werden die Inhalte platziert. Die geschweiften Klammern umfassen ein Objekt. Im Dokument selbst können wiederum weitere Objekte definiert werden. Ein Datenfeld wird mit einem Namen eingeleitet und der Wert folgt nach einem Doppelpunkt. Der Wert kann dann wieder ein Objekt sein.
Die in JSON gespeicherten Variablen können in folgenden Typen gespeichert werden:
Boolean: Der Wahrheitswert kann entweder true oder false sein. Die Schlüsselbegriffe werden ohne Anführungszeichen verwendet (z.B. “aktiv”: true).
Zahl: Eine Zahl wird mit den Ziffern 0-9, optional mit einem Punkt und Vorzeichen dargestellt. Auch ein Exponent kann genutzt werden (z.B. “Entfernung”: 3.1e+12).
Zeichenketten: Eine Zeichenkette ist ein beliebiger Text, der zwischen Anführungszeichen platziert wird. Eine Zeichenkette wird auch als String bezeichnet (z. B. “Stadt”: ”Hamburg”).
null: Ist eine Variable leer, kann dies durch die Zuweisung von null ausgedrückt werden. Das ist nicht zu verwechseln mit der Zahl 0 oder einem Leer-String. Null bedeutet wirklich “nichts” (Beispiel “Verknüpfung”: null).
Struktur
{
"Data field1": "Value"
"Data object."
{
"Field 1": 123
"Field2": "Text"
"Field3Array":["Value1", "Value2", "Value3", "Value4"] }
}
Tipp: Als nützliches Tool zum Validieren, Formatieren und Konvertieren von JSON eignet sich https://jsonformatter.org/.
Welche Frage haben Sie zu JSON?
3. Was ist ein JSON-Node?
Ein JSON-Node bezieht sich auf ein bestimmtes Element innerhalb eines JSON-Objekts oder Arrays. Jeder Knoten hat einen eindeutigen Pfad, der seine Position innerhalb der JSON-Struktur angibt. Der Pfad besteht aus dem Namen des Objekts oder Arrays, in dem sich der Knoten befindet, gefolgt von einem oder mehreren Schlüsseln, die den Pfad zum Knoten angeben.
Zum Beispiel, wenn wir eine JSON-Struktur wie diese haben:
{
„name“: „Schrauben“,
„artikelnummer“: 1001 ,
„auftrag“: {
„auftragsnummer“: 10013,
„datum“: 01.01.2023,
„stückzahl“: 30
}
}
Dann sind „name“, „artikelnummer“, „auftrag“, „auftragsnummer“, „datum“ und „stückzahl“ jeder ein JSON-Node in der Struktur.
Die Knoten „name“, „artikelnummer“ und „auftrag“ sind direkte Kinder des Hauptobjekts, während „auftrag.auftragsnummer“, „auftrag.datum“, und „auftrag-stückzahl“ Nodes innerhalb des „auftrag“ Objekts sind.
JSON-Nodes werden häufig verwendet, um Daten in einem einheitlichen Format und somit für andere Systeme und Geräte lesbar zu machen.
4. Welche Vorteile bietet JSON?
JSON ist für den Anwender schnell zu Erlernen und kann somit zügig in bereits vorhandene Systeme integriert werden. Gerade die einfache Implementierung und die kurze Einarbeitungszeit stechen bei JSON heraus. Außerdem kommt dazu, dass JSON bereits von vielen gängigen Programmiersprachen lesbar ist. Dafür gibt es sogenannte Parser, die eine JSON Datei übersetzen und für die Anwendung verfügbar machen. Diese Punkte machen JSON zu einem beliebten Datenformat für Anwender.
5. Welchen Zusammenhang gibt es zwischen JSON und JavaScript?
Die Definition von JSON stammt aus einer Untermenge der JavaScript-Sprachdefinition des ECMA-262 Standards. Die Tatsache, dass JSON diesen Ursprung hat und auch der Name “Java Script Object Notation” bedeuten aber nicht, dass JSON auf die Verwendung in JavaScript beschränkt ist. JSON ist dabei komplett unabhängig und ohne Bindung an die JavaScript-Sprache. In JavaScript gibt es viele integrierte Funktionen zum Arbeiten mit JSON, was es besonders leicht macht, JSON in JavaScript zu verwenden. In vielen anderen Sprachen sind aber auch entsprechende Frameworks vorhanden. Im Zweifel kann aber in jeder Programmiersprache das einfache Textformat von JSON ausgelesen und verarbeitet werden.
6. Welche Einsatzbereiche und praktischen Nutzen gibt es?
JSON ist mit seiner sehr einfachen Struktur und der Kodierung im Unicode Zeichensatz das ideale Format, um Daten zwischen Systemen auszutauschen. Und das, ohne Rücksicht auf Betriebssysteme, Rechnerarchitekturen oder Programmiersprachen nehmen zu müssen.
Daten werden im JSON Format gespeichert und als Datenpaket über beliebige Wege ans Zielsystem übermittelt (http, Datei, TCP/IP, Datenbank, etc.). Durch die Struktur und die integrierten beschreibenden Elemente kann das Zielsystem die Daten sehr einfach wieder auswerten. Da die Daten als abgeschlossenes Paket/Dokument ausgetauscht werden, eignet sich JSON sehr gut für asynchrone Prozesse. Am häufigsten verbreitet ist JSON in Web-Umgebungen, etabliert sich aber immer mehr in verschiedenen Anwendungsbereichen.
7. Wie funktioniert JSON in der Industrie?
In der industriellen Umgebung gewinnt das JSON Format an Verbreitung. Vorangetrieben wird dies vor allem durch die immer engere Verzahnung von Maschinen und Feldebenen-Geräten mit Webtechnologien. Durch Feldgeräte und Softwaresysteme mit REST Schnittstellen (Was ist REST?) und Einbindung von Sensoren und Geräten per MQTT ist JSON schon sehr verbreitet. Aktuell kommt der Einsatz von NoSQL hinzu und auch der immer größer werdende Trend zu Machine Learning und Künstlicher Intelligenz machen JSON als einfaches, aber flexibes Datenformat unverzichtbar.
Wir beraten Sie zum Einsatz von JSON in der Industrie – kostenlos und unverbindlich.
8. Geräte und Dienste
Dienste, die Informationen per REST Schnittstelle bereitstellen, geben ihre Daten oft als JSON zurück. Ein Beispiel ist der Wetterdienst OpenWeatherMap. Dieser Beispielaufruf gibt das aktuelle Wetter in London als JSON aus: https://openweathermap.org/
Ein ausführliches Beispiel ist in unserem Anleitungsartikel zur Anbindung von OpenWeatherMap zu finden.
Geräte, die JSON nutzen sind oftmals Datenquellen, welche Ihre Daten per MQTT versenden und damit Teil des IoT’s darstellen. PFC Steuerungen von Wago können zum Beispiel die JSON Dokumente per MQTT versenden.
9. JSON und XML
Bei XML (Extensible Markup Language) handelt es sich um eine Beschreibungssprache. Im Kern ist die Beschreibung von Daten ähnlich wie bei JSON. In XML ergibt sich durch die Beschreibung mit Tags ein höherer Overhead. Daten können nicht nur durch Tags, sondern auch durch Attribute beschrieben werden (z.B.: <TAG1 AttributA=”Wert”>TEXT</TAG1>). Daher müssen beim Datenaustausch Sender und Empfänger sehr klare Informationen über die vereinbarte Struktur vorliegen haben.
Im Gegensatz dazu ist die Struktur bei JSON sehr flexibel und in jedem Fall für den Empfänger komplett verständlich und in Objekte umwandelbar, ohne jegliche vorherige Strukturvereinbarung.
XML eignet sich daher für klar definierte Daten-Schnittstellen und JSON für den flexiblen Datenaustausch.
10. JSON und MQTT
Das MQTT Protokoll ist ein einfaches und leichtgewichtiges Transport-Protokoll für den Datenaustausch. Es wird viel von Geräten und Diensten genutzt, die mit beschränkter Bandbreite und Rechenkapazität auskommen müssen. Das Datenformat von MQTT ist nicht spezifiziert. Aber die Daten-Nutzlast (Payload) wird sehr häufig in Form eines JSON Dokuments formatiert, da es ideal für diesen Anwendungsfall ist. Aus diesem Grund finden sich viele MQTT-Verbindungspartner, die ihre Daten in Form von JSON publizieren.
11. JSON und NoSQL
Ein bekannter Anwendungsfall für JSON sind die dokumentenbasierten Datenbanken nach dem NoSQL Konzept. Diese Datenbanken nehmen JSON Dokumente zur Speicherung entgegen und liefern diese bei Abfragen wieder zurück.
Durch die flexible Struktur von JSON können beliebige JSON Dokumente in eine dokumentenorientierte NoSQL Datenbank übergeben werden. Die Abfrage-Funktionen dieser Datenbanken können auf sämtliche Felder und Objekte in den Dokumenten ohne vorherige Schemadefinition zugreifen und dadurch die Dokumente mit passenden Kriterien bei Abfragen zurückgeben. Eine Schema-Definition wie beim klassischen SQL entfällt komplett.
Ein Beispiel für eine solche Datenbank ist die MongoDB Datenbank. Der OPC Router verfügt über ein Plug-in, um Daten an MongoDB Datenbanken zu übergeben.
12. Beispiel für Java Script Object Notation
Ein etwas komplexeres Beispiel erklärt am Produktionsauftrag mit mehreren Komponenten. Der Produktionsauftrag wird durch einige Basisfelder beschrieben und ein Array, das die Komponenten enthält. Die Komponenten werden als eigene Objekte mit den jeweiligen Beschreibungsfeldern beschrieben.
{
"Order number": 4711,
"Quantity": 15000.0,
"Item": "Product A",
"Planned date": "6/4/2020",
"Release": true,
"Components":[
{
"Name": "Component A",
"Material number": 292345,
"Quantity": 345,123,
"Storage areas": [ 3, 6, 23 ] }, {
"Name": "Component B",
"Material number": 908431,
"Quantity": 12034,123,
"Storage areas": [ 1, 2, 9 ] },
{
"Name": "Component C",
"Material number": 928398,
"Quantity": 2623.2,
"Storage locations": [ 10 ] },
] }
Einfache JSON Kommunikation in der Praxis
JSON ist ein von JavaScript geprägter, aber unabhängiger Standard in der Datenübermittlung im Internet. Auf Grund der einfachen Implementierung und der simplen Anbindung an andere Programmiersprachen ist JSON ein beliebtes Datenformat in der Industrie.
In der Praxis wird JSON gerne für die Ein- oder Ausgabe von Parametern in Systemen benutzt. Dabei erstellt JSON ein Datenpaket, welches auch komplexe und zusammenhängende Daten beinhalten kann und stellt dieses als Dokument für andere Systeme bereit. In der Industrie können somit beispielsweise Produktionsaufträge schnell weitergeleitet werden, um die Abläufe zu optimieren. Die Erzeugung solcher Datenpakete kann mit einer Software wie z.B. dem OPC Router aus Systemen wie SAP, MQTT, OPC UA und SQL erfolgen und daraufhin mit Hilfe einer grafischen Oberfläche in die JSON Struktur umgewandelt werden. JSON belebt die Vernetzung in der Produktion und sorgt für einen effektiven Industrie 4.0 Datenaustausch.
Weitere Informationen
Lesen Sie, wie das JSON Plug-in Daten aus unterschiedlichen Quellen extrahiert, umwandelt und somit für Ihre Systeme verfügbar macht.
Lesen Sie, wie der Einsatz des OPC-Routers von inray beim Motoren- und Gartengerätehersteller STIHL die Gesamt-Automatisierungs-Effektivität steigert. Die Einbindung des ERP-Systems SAP und dessen Datenbank sowie der SQL-Server der Montagelinie ermöglichen eine effiziente Dokumentation und Rückverfolgbarkeit der Produktion, sowie eine automatische Vorgangskontrolle.
Erfahren Sie mehr über Industrie 4.0! Die vierte industrielle Revolution durch Digitalisierung: Menschen, Maschinen und Produkte sind direkt miteinander vernetzt. In unserem Beitrag lesen Sie mehr!
Weitere interessante Artikel zu den Themen Industrie 4.0, Cloud, Technik, Alarmierung und praktische Anwendungsbeispiele sowie Case Studies finden Sie in unserer Knowledge Base.