26 JSON und BSON

JSON und BSON sind Datenformate, die zur Speicherung und Übertragung von Daten verwendet werden. Während JSON ein textbasiertes Format ist, das für den Austausch von Daten zwischen Webanwendungen beliebt ist, ist BSON eine binäre Erweiterung von JSON, die speziell für datenintensive Anwendungen wie MongoDB optimiert wurde.


26.1 JSON (JavaScript Object Notation)

26.1.1 Eigenschaften von JSON

26.1.2 Syntax

26.1.2.1 Objekte

Ein JSON-Objekt ist eine Sammlung von Schlüssel-Wert-Paaren, eingeschlossen in geschweifte Klammern { }.

Beispiel:

{
  "name": "Alice",
  "age": 30,
  "isStudent": false
}

26.1.2.2 Arrays

Ein JSON-Array ist eine geordnete Liste von Werten, eingeschlossen in eckige Klammern [ ].

Beispiel:

["apple", "banana", "cherry"]

26.1.2.3 Datentypen in JSON


26.2 BSON (Binary JSON)

26.2.1 Eigenschaften von BSON

26.2.2 Warum BSON?

  1. Effizienz: Binäre Kodierung ermöglicht schnellere Serialisierung und Deserialisierung.
  2. Zusätzliche Datentypen: BSON unterstützt Datentypen wie Date, ObjectId und BinData.
  3. Optimierung für große Dokumente: BSON wurde für datenintensive Anwendungen entwickelt.

26.2.3 BSON-spezifische Datentypen

BSON erweitert JSON um zusätzliche Datentypen, die besonders in datenbankbezogenen Anwendungen nützlich sind:

Beispiel eines BSON-Dokuments:

{
  "_id": ObjectId("64f1234567ab89cd12345678"),
  "name": "Alice",
  "createdAt": ISODate("2023-12-01T10:00:00Z"),
  "profilePicture": BinData(0, "binary-data-goes-here")
}

26.3 JSON vs. BSON: Ein Vergleich

Merkmal JSON BSON
Format Textbasiert Binär
Lesbarkeit Menschlich lesbar Nicht direkt lesbar
Effizienz Weniger effizient bei großen Daten Optimiert für große Dokumente
Datentypen Basis-Datentypen (z. B. String, Number) Erweiterte Datentypen (z. B. ObjectId, Date)
Nutzung Datenaustausch in Webanwendungen Speicherung und Verarbeitung in MongoDB

26.4 tl;dr

Die Wahl zwischen JSON und BSON hängt von der Anwendung ab. JSON ist für den Austausch von Daten zwischen Systemen universell und weit verbreitet, während BSON speziell auf Performance und Flexibilität in datenbankorientierten Anwendungen zugeschnitten ist.