JSON – Das universelle Datenformat für den Datenaustausch

In der heutigen digitalen Welt, in der Webanwendungen, APIs, Cloud-Plattformen und mobile Applikationen nahtlos miteinander kommunizieren, spielt der strukturierte Datenaustausch eine zentrale Rolle. Eines der am weitesten verbreiteten Formate für diesen Zweck ist JSON (JavaScript Object Notation). Dieses leichtgewichtige Datenformat hat sich als Standard für die Übertragung strukturierter Informationen zwischen Systemen etabliert.

Was ist JSON?

JSON (JavaScript Object Notation) ist ein textbasiertes Format zur Darstellung strukturierter Daten, das ursprünglich aus der JavaScript-Welt stammt, aber heute von nahezu jeder Programmiersprache unterstützt wird. Es wird insbesondere im Webumfeld verwendet, z. B. beim Austausch von Daten zwischen Client und Server.

JSON ist einfach lesbar, sowohl für Menschen als auch für Maschinen. Die Syntax basiert auf einer Untermenge der JavaScript-Objektnotation, jedoch ohne deren Funktionsumfang.

Aufbau und Struktur von JSON

JSON besteht aus zwei Hauptstrukturen:

  1. Objekte – eine ungeordnete Sammlung von Schlüssel-Wert-Paaren.
  2. Arrays – eine geordnete Liste von Werten.

1. JSON-Objekt

{
  "name": "Max Mustermann",
  "alter": 35,
  "verheiratet": false
}

2. JSON-Array

[
  "Apfel",
  "Banane",
  "Kirsche"
]

Gültige Datentypen in JSON

  • Zeichenkette (String) → „Beispiel“
  • Zahl (Number) → 123.45
  • Objekt → {…}
  • Array → […]
  • Boolean → true oder false
  • Null → null

Verschachtelte Strukturen

{
  "benutzer": {
    "id": 1001,
    "name": "Anna",
    "rollen": ["admin", "editor"]
  }
}

Rolle der Klammern in JSON

{ } definieren ein Objekt.
[ ] definieren ein Array.

Diese Klammern sorgen für die logische Strukturierung der Daten. JSON-Dateien müssen wohlgeformt sein – jeder öffnenden Klammer muss eine schließende gegenüberstehen, und die Syntax muss exakt eingehalten werden.

JSON im Einsatz – ein typisches Anwendungsbeispiel

{
  "id": 12345,
  "vorname": "Lisa",
  "nachname": "Müller",
  "email": "lisa.mueller@example.com",
  "newsletter": true
}

JSON in verschiedenen Programmier- und Scriptsprachen

JavaScript

const jsonString = '{"name":"Tom","alter":28}';
const obj = JSON.parse(jsonString);
console.log(obj.name);
const backToJson = JSON.stringify(obj);

Python

import json

json_str = '{"name": "Tom", "alter": 28}'
obj = json.loads(json_str)
print(obj['name'])
new_json = json.dumps(obj)

Java

import org.json.JSONObject;

String jsonString = "{\"name\":\"Tom\",\"alter\":28}";
JSONObject obj = new JSONObject(jsonString);
System.out.println(obj.getString("name"));

JSON im Vergleich zu XML

Kriterium JSON XML
Lesbarkeit Einfach Komplexer
Datenmenge Kompakter Umfangreicher
Parsing Schnell und nativ Aufwendiger
Unterstützung Sehr gut Weit verbreitet
Schemadefinition JSON Schema XSD

Sicherheit und JSON

Beim Umgang mit JSON-Daten ist besondere Vorsicht geboten, wenn diese von externen Quellen stammen. Mögliche Angriffsvektoren sind:

  • JSON Injection
  • Cross-Site Scripting (XSS)
  • Parsing-Fehler

Validierung von JSON

Zur Sicherstellung der Datenintegrität kann ein JSON Schema verwendet werden:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "alter": { "type": "integer" }
  },
  "required": ["name", "alter"]
}

Beispiel mit der Konfiguration einer Anwendung mit JSON

{
  "server": {
    "port": 8080,
    "useSSL": true
  },
  "database": {
    "host": "localhost",
    "user": "root",
    "password": "geheim"
  }
}

JSON und Datenbanken

Moderne Datenbanken wie MongoDB oder PostgreSQL unterstützen JSON-Datentypen:

SELECT info->>'name' FROM benutzerWHERE info->>'rolle'='adm';

Vollständiges JSON-Beispiel

{
  "projekt": "Sensorüberwachung",
  "version": "1.0.3",
  "sensoren": [
    {
      "id": 101,
      "typ": "Temperatur",
      "einheit": "Celsius",
      "wert": 23.4
    },
    {
      "id": 102,
      "typ": "Luftfeuchtigkeit",
      "einheit": "%",
      "wert": 45.2
    }
  ],
  "status": "aktiv",
  "letzteAktualisierung": "2025-06-17T10:45:00Z"
}

Fazit

JSON hat sich als eines der wichtigsten Datenformate im Bereich der modernen Softwareentwicklung etabliert. Es bietet eine unkomplizierte Möglichkeit, strukturierte Informationen zu speichern, zu übertragen und zu verarbeiten. Ob bei der Kommunikation zwischen Frontend und Backend, dem Speichern von Konfigurationen oder beim Zugriff auf APIs – JSON ist universell einsetzbar.

Die klare Struktur, die breite Unterstützung durch nahezu alle Programmiersprachen und die hervorragende Lesbarkeit machen JSON sowohl für Entwickler als auch für Maschinen zur ersten Wahl. Es ersetzt in vielen Anwendungsfällen ältere Formate wie XML und überzeugt durch Einfachheit, Flexibilität und Effizienz.

Trotz aller Vorteile sollten Entwickler Sicherheitsaspekte wie Datenvalidierung, fehlerhafte Strukturierung und potenzielle Injection-Angriffe stets im Blick behalten. Mit gezieltem Einsatz von JSON-Schema und bewährten Bibliotheken lassen sich diese Risiken jedoch kontrollieren.

Insgesamt lässt sich sagen: JSON ist schlank, zuverlässig und unverzichtbar.

„JSON – Das universelle Datenformat für den Datenaustausch“ weiterlesen

UART – Serielle Kommunikation einfach erklärt mit dem Arduino

Was ist UART?

Die UART-Schnittstelle (Universal Asynchronous Receiver Transmitter) ist ein grundlegendes Kommunikationsprotokoll in der digitalen Elektronik. Sie wird genutzt, um Daten asynchron seriell zwischen zwei Geräten zu übertragen – z. B. zwischen einem Arduino und einem Sensor, Modul oder Computer.

Im Gegensatz zu synchronen Protokollen wie SPI oder I²C benötigt die UART Schnittstelle keine gemeinsame Taktleitung. Die Übertragung erfolgt über zwei Leitungen: TX (Transmit) und RX (Receive). Damit ist UART besonders einfach im Aufbau und vielseitig einsetzbar – ideal für Embedded-Systeme, Debugging und Modemkommunikation.

Techn. Spezifikationen der UART Schnittstelle des Arduino Uno

Merkmal Beschreibung
Signalpegel TTL 0 V (LOW) / 5 V (HIGH)
Pins TX (D1), RX (D0)
Baudrate Standard: 9600 bps (einstellbar)
Datenbits 8 (üblich)
Stoppbits 1 oder 2
Parität Keine (optional möglich)
Protokoll Asynchron, Vollduplex (2-Leiter)
Schnittstellen-Chip ATmega328P UART0 (interner USART)

Beispiel einer seriellen Kommunikation zwischen Arduino und PC

Wir senden über UART Textdaten vom Arduino an den seriellen Monitor eines PCs – nützlich zum Debuggen oder zur Protokollierung von Daten.

Benötigte Komponenten:

  • Arduino Uno
  • USB-Kabel
  • PC / Notebook mit Arduino IDE

Aufbau:

  • TX (D1) → USB-Seriell-Konverter (integriert)
  • RX (D0) ← USB-Seriell-Konverter

Hinweis: Beim Hochladen eines Programms über USB sind RX/TX bereits belegt. Währenddessen darf keine andere UART-Kommunikation aktiv sein.

Programmierung der UART-Datenübertragung mit dem Arduino

void setup() {
  Serial.begin(9600); // UART mit 9600 Baud starten
}

void loop() {
  Serial.println("Hallo, gesendet über UART!");
  delay(1000); // 1 Sekunde Pause
}

Erklärung:

  • Serial.begin(9600) >> Initialisiert UART mit 9600 Baud.
  • Serial.println(...) >> Sendet Text über TX an den PC.
  • Die Ausgabe erscheint im seriellen Monitor der Arduino IDE.

Es ist auch eine Erweiterung von UART zu UART möglich, wie zum Beispiel zwischen Microcontrollern Arduino ↔ ESP8266

Die Mikrocontroller werden direkt über UART verbunden

  • Arduino TX → ESP8266 RX
  • Arduino RX ← ESP8266 TX (mit Spannungsteiler!)

Da der ESP8266 nur 3,3 V verträgt, muss ein Spannungsteiler oder ein Pegelwandler verwendet werden.

Anwendungsbereiche von UART

  • Debugging und Logging über seriellen Monitor
  • Kommunikation mit GSM-, GPS-, RFID- oder Bluetooth-Modulen
  • Datenübertragung zwischen Mikrocontrollern
  • Firmware-Uploads bei Embedded-Systemen

Fazit

Die UART Schnittstelle ist eine der einfachsten und zugleich zuverlässigsten Methoden zur seriellen Kommunikation zwischen elektronischen Geräten. Der geringe Pinbedarf, die gute Unterstützung in Mikrocontroller-Entwicklungsumgebungen  sind ein Vorteil bei Aufbauten. Die breite Anwendungspalette macht die UART-Schnittstelle unverzichtbar im IoT-, Sensorik- und Embedded-Bereich.

Mit einem Arduino lassen sich erste Anwendungen spielend einfach umsetzen – ob zur Protokollierung, Fernsteuerung oder zur Kommunikation mit anderen Modulen. Wer die UART Schnittstelle beherrscht, öffnet die Tür zu vielen professionellen Elektronikprojekten.

GPIO bei IoT – Die universelle Schnittstelle zur Steuerung und Erfassung von Signalen

GPIO – Die universelle Schnittstelle zur Steuerung und Erfassung von Signalen

Was ist eine GPIO-Schnittstelle?

Die GPIO-Schnittstelle steht für General Purpose Input/Output. Dabei handelt es sich um eine universelle digitale Schnittstelle, die auf vielen Mikrocontrollern wie dem Arduino, ESP32, Raspberry Pi oder anderen eingebetteten Systemen zu finden ist. GPIO-Pins können per Programm als Eingänge oder Ausgänge konfiguriert werden. Sie dienen zum Lesen digitaler Signale oder zum Ansteuern externer Komponenten.

Technische Spezifikationen (am Beispiel des Arduino Uno)

Merkmal Beschreibung
Anzahl GPIO-Pins 14 digitale I/O Pins (D0–D13)
Spannung 5V (Logik HIGH), 0V (Logik LOW)
Maximaler Ausgangsstrom ca. 40 mA pro Pin
Interne Pullup-Widerstände Softwareaktivierbar (INPUT_PULLUP)
PWM-fähige Pins D3, D5, D6, D9, D10, D11
Schutz Kein Überspannungsschutz integriert

Anwendungsbeispiel: LED über GPIO steuern

Das Projekt wird eine LED über einen GPIO-Pin ein- und ausschalten.

Bauteile:

  • 1× Arduino Uno
  • 1× LED (z. B. 5 mm, rot)
  • 1× 220 Ω Widerstand
  • Jumper-Kabel
  • Steckbrett

Schaltung:

Die LED-Anode (+) an Digitalpin 13 und die Kathode (–) über 220 Ω Widerstand an GND anschließen.


Arduino D13 ─────┬────>│──┬─── GND  
                 │   LED  │  
                 │        R  
                 └────────┘  

Programmierung der Arduino IDE


// Pin-Definition
const int ledPin = 13;

void setup() {
  // Setze Pin 13 als Ausgang
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH); // LED ein
  delay(1000);                // 1 Sekunde warten
  digitalWrite(ledPin, LOW);  // LED aus
  delay(1000);                // 1 Sekunde warten
}

Erklärung des Codes

  • pinMode(ledPin, OUTPUT): Konfiguriert Pin 13 als Ausgang
  • digitalWrite(ledPin, HIGH): Schaltet die LED ein
  • delay(1000): Wartet 1 Sekunde
  • loop(): Wiederholt den Vorgang in einer Endlosschleife

Weitere Anwendungsmöglichkeiten von GPIO

  • Taster abfragen (Input)
  • Relais ansteuern (Output)
  • Sensoren auslesen
  • Servomotoren steuern
  • Datenkommunikation über I²C oder SPI

Fazit

Die GPIO-Schnittstelle ist das zentrale Bindeglied zwischen Mikrocontroller und realer Welt. Durch einfaches Umschalten zwischen Input und Output kann ein Arduino vielseitige Aufgaben übernehmen – von der simplen LED-Steuerung bis hin zur komplexen Sensorüberwachung. Wer die Funktionsweise der GPIO-Pins verstanden hat, besitzt das Fundament für nahezu jedes Elektronikprojekt.

Datenaustausch mit dem JSON Format

In der modernen Welt der IT und Softwareentwicklung spielt der effiziente Austausch von Daten eine zentrale Rolle. Besonders mit dem Siegeszug des Internets und vernetzter Systeme wurde ein standardisiertes Format erforderlich, das leicht lesbar, einfach zu erstellen und von Maschinen schnell verarbeitbar ist. In diesem Zusammenhang hat sich JSON (JavaScript Object Notation) als eines der beliebtesten Datenaustauschformate etabliert.

JSON ist ein leichtgewichtiges, textbasiertes Format, das auf einer Teilmenge der JavaScript-Programmiersprache basiert, sich jedoch längst von dieser emanzipiert hat. Ursprünglich im Jahr 2001 von Douglas Crockford entwickelt, verfolgt JSON das Ziel, eine menschenlesbare und maschinenverarbeitbare Struktur für den Austausch von Daten zwischen Systemen bereitzustellen. Heute ist JSON ein offener Standard und wird von nahezu allen modernen Programmiersprachen unterstützt.

Wie funktioniertJSON?

„Datenaustausch mit dem JSON Format“ weiterlesen

Das SOAP Protokoll zum Datenaustausch

In modernen IT-Systemen ist der zuverlässige Austausch von Daten zwischen Anwendungen essenziell. Das SOAP-Protokoll (Simple Object Access Protocol) bietet hierfür eine plattformunabhängige, standardisierte Lösung auf XML-Basis. Es ermöglicht strukturierte Kommunikation über Netzwerke – typischerweise via HTTP.

Im Gegensatz zu REST zeichnet sich SOAP durch umfangreiche Spezifikationen und Erweiterungen wie WS-Security oder WS-ReliableMessaging aus. Es eignet sich besonders für komplexe, unternehmenskritische Systeme mit hohen Anforderungen an Sicherheit und Transaktionssicherheit.

Obwohl moderne REST-APIs in vielen Bereichen dominieren, bleibt SOAP in komplexen Unternehmensumgebungen wie der Finanzbranche, im Gesundheitswesen oder bei sicherheitskritischen Anwendungen von zentraler Bedeutung. Dies liegt vor allem an den umfangreichen Spezifikationen, die SOAP mitbringt, um Sicherheit, Transaktionen und Nachrichtenrouting zu ermöglichen.

Die folgende Darstellung beleuchtet die Grundlagen, die Funktionsweise sowie ein Beispiel zur Nutzung von SOAP-Webservices.

„Das SOAP Protokoll zum Datenaustausch“ weiterlesen

Grundlagen REST-API mit HTTP Methoden

Die REST API (Representational State Transfer Application Programming Interface) stellt Schnittstellen für die Entwicklung von Webservices zur Verfügung, die auf den Prinzipien des HTTP-Protokolls basieren. REST wurde ursprünglich von Roy Fielding in seiner Dissertation im Jahr 2000 beschrieben und ist heute eine der am häufigsten eingesetzten Methoden, um Dienste im Web bereitzustellen.

Die REST-Architektur zeichnet sich durch ihre Einfachheit, Skalierbarkeit, Performanz und leichte Integration mit verschiedensten Systemen aus. RESTful APIs ermöglichen es, verteilte Systeme effizient miteinander kommunizieren zu lassen, indem sie auf standardisierten HTTP-Methoden und einem klaren Ressourcenmodell beruhen.

„Grundlagen REST-API mit HTTP Methoden“ weiterlesen

CSV zum Austausch von Daten nutzen

Komma-separierte Werte (CSV heißt Comma Separated Value) sind ein lange genutztes und weit verbreitetes Datenformat, das zum Austausch von Daten zwischen verschiedenen Systemen verwendet wird. CSV ist besonders nützlich, wenn es darum geht, strukturierte Daten in einer einfachen, menschenlesbaren Form zu speichern und zu übertragen.

Was ist CSV?

CSV ist ein Dateiformat, das verwendet wird, um Tabellendaten zu speichern. Es besteht aus Zeilen und Spalten, wobei jede Zeile eine Datensatz darstellt und die Spalten die verschiedenen Datenfelder enthalten. Die Werte innerhalb der Spalten werden durch ein Trennzeichen, meist ein Komma, voneinander getrennt. Es können aber auch andere Trennzeichen, wie zum Beispiel das Semikolon (;) oder das Pipe (|) verwendet werden. So entsteht eine Struktur, die leicht zu lesen und zu verarbeiten ist.

Beispiel mit Trennzeichen und Feldnamen

Angenommen, wir haben eine einfache Tabelle mit den Namen von Personen und ihren zugehörigen E-Mail-Adressen. Dazu stehen in der ersten Zeile die Feldnamen. Hier ist ein Beispiel für CSV mit Trennzeichen und Feldnamen:

```
Name, Ort
Max Meier, Erlangen
Gerda Gruber, Frankfurt
```

In diesem Beispiel sind „Name“ und „Ort“ die Spaltenüberschriften, während „Max Meier“ und „Erlangen“ die Daten in der ersten Zeile darstellen. Jede weitere Zeile enthält ähnliche Datensätze. Das Trennzeichen ist hier das Komma und es trennt die einzelnen Werte. Es kann statt dessen auch ein anderes Trennzeichen wie das Semikolon (;) oder das Pipe (|) verwendet werden.

Beispiel ohne Trennzeichen und mit Qualifier

In einigen Fällen kann es vorkommen, dass die CSV-Datei keine expliziten Trennzeichen enthält. Stattdessen werden die Werte einfach durch die Positionierung getrennt. Hier ist ein Beispiel für CSV ohne Trennzeichen, aber mit Qualifier:

```
"Name"         "Ort"
"Max Meier"    "Erlangen"
"Gerda Gruber" "Frankfurt"
```

In diesem Fall werden die Werte durch ihre Position in der Zeile getrennt. Der erste Wert „Max Meier“ gehört zur Spalte „Name“, während „Erlangen“ zur Spalte „Ort“ gehört. Die Trennung erfolgt hier implizit durch die Anzahl der Zeichen zwischen den Werten. Der Qualifier („) wird hier genutzt, damit die zusammengehörenden 2 Worte im Feld Namen als ein Wert erkannt werden.

Vorteile von CSV

CSV bietet mehrere Vorteile, die es zu einem beliebten Format machen. Erstens ist es einfach zu erstellen und zu lesen, da es sich um eine Textdatei handelt. Zweitens kann CSV von den meisten Tabellenkalkulations-programmen und Datenbanken problemlos importiert und exportiert werden. Es ist auch sprachenunabhängig, was bedeutet, dass es von verschiedenen Programmiersprachen unterstützt wird. Darüber hinaus ist CSV effizient in Bezug auf Dateigröße und erfordert weniger Speicherplatz im Vergleich zu anderen Formaten wie XML oder JSON.

Fazit

Komma-separierte Werte sind ein vielseitiges Datenformat, das in vielen Anwendungen weit verbreitet ist. Sie bieten eine einfache Möglichkeit, Tabellendaten zu speichern und auszutauschen. Sowohl CSV mit als auch ohne Separator können verwendet werden, je nach den Anforderungen der Datenverarbeitung.

XML, die erweiterbare Auszeichnungssprache

XML oder ausgeschrieben Extended Markup Language ist eine Metasprache mit der Daten strukturiert beschrieben werden können. XML hat sich aus der Ende der 1960-er Jahre erfundenen Metasprache SGML weiter entwickelt. Mit XML wird die Struktur, der Inhalt und die Darstellung der Daten getrennt. Dadurch lassen sich die 3 Teilbereiche unabhängig voneinander verarbeiten. Auch die millionfach eingesetzte Auszeichnungssprache HTML basiert auf XML und SGML.

Bei der KI dient diese Sprache zur Kommunikation zwischen Anwendungen und Maschinen. So spielt XML eine immer wichtigere Rolle bei der Maschine zu Maschine Kommunikation und wird zudem bei Konfigurationen von IOT Geräten eingesetzt.

Definition von Dokumentklassen

Bevor Daten übertragen werden können, erfolgt die Deklaration der XML-Elemente. Dazu gibt es zwei Möglichkeiten zur Erstellung von Dokumentklassen und Elementen.

  1. Mit DTD, der Document Type Definition lassen sich die Dokumentklassen und Elemente definieren.
  2. Die zweite und modernere Methode ist das XML Schema.

Struktur der XML Dokumente

Die Dokumenttyp Definition

Beispiel bestellung.dtd

Oder alternativ das XML Schema

Beispiel bestellung.xsd

Das XML Dokument mit den strukturierten Daten

Beispiel bestellung.xml

Das XML Dokument nutzt im Dokumentenkopf entweder das XML Schema oder den DTD. Die Elemente von XML werden auch Tags oder Nodes genannt.

Vorteile von XML

  • Als Konfigurationsdateien bleiben die Daten für den Menschen lesbar
  • Über Schnittstellen und Webservices wie SOAP  und REST lassen sich Daten systemübergreifend austauschen
  • Die Dateien lassen sich mit jedem Texteditor öffnen und bearbeiten
  • Mit Hilfe von CSS oder XSLT lassen sich die Daten transformieren und so unterschiedlich nutzen.

 

 

Barrierefreiheit