15 Datenformate
XML, Json oder auch YAML sind Programmiersprachen unabhängig Datenformate die weit verbreitet sind. Die weite Verbreitung führt zu Parser und Generatoren in nahezu jeder Programmiersprache, was eine enorme Entlastung für die Programmentwicklung darstellt. In den folgenden Kapiteln sind die aktuell wichtigsten Datenformate betrachtet.
15.1 Javascript Object Notation (JSON)
JSON steht für Javascript Object Notation und ist ein textbasiertes Format, zur Beschreibung von Daten, analog anderer Formate wie XML oder YAML. Generell wird es genutzt, um Daten auszutauschen.
Wie dem Namen zu entnehmen ist, kommt JSON aus der Javascript (JS) Umgebung (Nicht Java!) und erfährt in den den letzten Jahren einen riesigen Hype. Warum dies so ist, ist der technologischen Entwicklung zu schulden. Betrachtet man die alltäglich genutzten Applikationen wie E-Mail Clients, Webbrowser, Programmierumgebungen (z.B. VS Code) oder auch MS Teams aus einer technischen Perspektive, wird einem die grosse Verbreitung an Webapplikationen erst bewusst. All diese genannten Tools sind einfach ausgedrückt, intelligente Webseiten die demnach meistens mit Html, CSS und Javascript umgesetzt sind. Während HTML und CSS für den Inhalt und die Darstellung verantwortlich ist, erweckt Javascript die Applikation zum leben. Die Objekte die JS dabei “verwendet”, bestehen aus Properties und PropertyValues, wie es das nachfolgende Beispiel zeigt. Alle Daten werden somit in Objekten oder auch verschachtelten Objekten verwaltet.
{
"Name" : "Peter",
1 : 55,
2: "Auto",
true : "xy"
}Der folgende JSON formatierte String zeigt das selbe Objekt:
{
"Name" : "Peter",
"1" : 55,
"2" : false,
"true" : "xy"
}Was sicher direkt auffällt ist die Ähnlichkeit zwischen einem Javascript Objekt und einem JSON formatierten String. Einfach ausgedrückt verwendet JS intern JS-Objekte, bei denen auch der Key ein unterschiedlicher Datentyp sein kann (Im Beispiel String, Number und Boolean), wogegen bei JSON der Key immer ein String ist. Wird in JS ein Objekt allgemein dargestellt oder an eine andere Anwendung übertragen, wird daraus ein JSON String generiert, der es auch anderen Umgebungen und Programmiersprachen ermöglicht, einfach mit den Daten zu arbeiten. Da die Verbreitung von Javascript ziemlich jede Stufe der Automationspyramide erreicht wird, wird JSON immer mehr zum Quasi-Standard.
15.1.1 Formatbeschreibung
Ein JSON String ist eine Zeichenkette und muss immer mit einem Start Objekt beginnen. Ein Objekt wird dabei mit den Klammern { und } dargestellt und enthält verschiedene Properties als Key/Value Pairs. Im Gegensatz zu Javascript Objekten, sind die Keys in einem JSON String immer vom Datentyp String. Die Werte hingegen können folgende Typen einnehmen und können beliebig verschachtelt werden:
- String (“Es geht mir gut.”)
- Number (15, 22.23)
- Boolean (true, false)
- Objekt ({})
- Null
- Array ([ “A”, 1, 3, true])
Das ganze Format ist Case Sensitiv und einzelne Properties werden durch ein Komma getrennt.
15.1.2 Nützliche Quellen
Die folgenden Links sind nützliche Quellen für weitere Informationen.
**Hinweis**:
Der Autor dieses Dokuments hat aber keinen Einfluss auf den Inhalt und die Korrektheit der darin enthaltenen Daten. Die Verwendeung geschieht somit auf eigene Verantwortung.
Validatoren:
https://jsonformatter.curiousconcept.com/
15.1.3 Beispiele
15.1.3.1 Beispiel 1:
JSON-String mit drei Properties:
{
"Name" : "Peter",
"Alter" : 55,
"Wohnort" : "Musterdorf"
}15.1.3.2 Beispiel 2:
JSON-String mit Array:
{
"Ort" : "Bilbiothek",
"Buecher" : [ "On the Road", "Der Name der Rose", "Die Glasglocke"]
}15.1.3.3 Beispiel 2:
JSON-String mit mehreren Objekten:
{
"Name" : "Müller",
"Vorname" : "Vreni",
"Kinder" : [
{
"Name" : "Milo",
"Alter" : 2
},
{
"Name" : "Darma",
"Alter" : 5
}
]
}