c't 19/2021
S. 128
Wissen
Datenstrukturen speichern
Bild: Thorsten Hübner

Strukturkunde

Datenstrukturen serialisieren mit JSON, YAML, XML & Co.

In fast jeder Software werden irgendwo verschachtelte Datenstrukturen verarbeitet. Um sie zu speichern, über das Netzwerk zu verschicken und mit anderen Programmen auszutauschen, gibt es zahlreiche Datenformate mit individuellen Vor- und Nachteilen. Für welches man sich als Entwickler entscheiden sollte, hängt vom Einsatzbereich ab.

Von Jan Mahn

Ohne verschachtelte Datenstrukturen wäre Programmieren eine wenig vergnügliche Betätigung. Schon in vergleichsweise simplen Anwendungen kommt man schnell an den Punkt, dass man nicht für jeden Wert eine eigene Variable anlegen kann. Plant man etwa eine Anwendung zur Verwaltung eines Fahrrad-Fuhrparks, die Eigenschaften von Fahrrädern sammelt, legt man eine Datenstruktur wie die folgende für ein Fahrrad an:

$bike = [
  "manufacturer" => "Superrad",
  "type" => "Trekking",
  "wheels" => 2,
  "users" => ["Jim", "Tina"],
  "purchase" => "2020-05-15",
  "location" => [
    "lat"=> 52.38628, "lon"=> 9.81034]
];

Dieses Beispiel ist in PHP verfasst, dort heißen solche Datenstrukturen immer Array. Die Zeichenketten wie manufacturer, type und wheels bezeichnet man als Schlüssel, darunter sind die Werte abgelegt. Ähnliche Strukturen, auch assoziative Datenfelder genannt, gibt es in jeder modernen Programmiersprache, sie heißen immer etwas anders: Object, Struct, Dictionary, Slice oder Map. Manchmal nennen die Spracherfinder die Konstrukte auch anders, wenn es sich bei den Schlüsseln um Zahlen statt um Zeichenketten handelt. Auch die Syntax, über die man auf die Daten zugreift, unterscheidet sich von Sprache zu Sprache. In PHP erreicht man den Breitengrad im obigen Beispiel etwa über $bike["location"]["lat"]. In objektorientierten Sprachen ist eine Syntax wie bike.location.lat oder bike->location->lat üblich.

Kommentieren