CodeGym /Kurse /C# SELF /Grundlagen des JSON...

Grundlagen des JSON-Formats und seine Popularität

C# SELF
Level 43, Lektion 4
Verfügbar

1. Einführung

Wenn du schon einmal moderne APIs geöffnet, mit Web-Services gearbeitet, mobile Apps entwickelt oder einfach nur versucht hast, etwas in einem "universellen Format" zu speichern — dann bist du schon auf JSON gestoßen oder wirst es tun. Das ist das Format, das buchstäblich verschiedene Programmiersprachen und Plattformen verbindet: C#, JavaScript, Python — alle sprechen mit JSON.

Warum wurde gerade JSON zum Star der Serialisierung? Die Antwort ist einfach: es ist kompakt, menschenlesbar und ein leichtgewichtiges Textformat zum Austausch strukturierter Daten. Seine Popularität kommt vom gelungenen Mix aus Einfachheit, Universalität und exzellenter Unterstützung in Programmiersprachen.

Was ist JSON?

JSON steht für JavaScript Object Notation. Das Format stammt aus der JavaScript-Welt, hat sich aber schnell über Browser hinaus verbreitet. Wichtig: trotz des Namens ist JSON nicht an JavaScript gebunden und eignet sich gleichermaßen für alle Programmiersprachen.

Das Format wurde Anfang der 2000er Jahre von Douglas Crockford als einfachere Alternative zu dem oft wortreichen XML erfunden. Die Idee ist simpel: „JSON ist kürzer, einfacher und leichter mit den Augen zu lesen“.

2. Grundregeln des JSON-Formats

Das Wichtigste: JSON ist ein strikt definiertes Text-Format für strukturierte Daten. Keine Magie, nur normaler Text, den man in jedem Editor öffnen kann.

Grundkonstrukte:

  • Arrays (arrays): geordnete Listen von Werten.
  • Objekte (objects): Sammlungen von Schlüssel-Wert-Paaren.
  • Einfache Typen: Strings, Zahlen, boolesche Werte (true, false) und der spezielle Wert null.

Beispiel eines minimalen JSON-Dokuments:

{
    "name": "Ivan",
    "age": 25,
    "isStudent": true,
    "scores": [5, 4, 5, 3],
    "contacts": {
        "email": "ivan@example.com",
        "phone": null
    }
}

Schematische Struktur

Hier eine einfache Zuordnung von C#-Typen zur Darstellung in JSON:

C# Typ JSON-Beispiel
string
"name": "Ivan"
int, double
"score": 5
bool
"isStudent": true
Array (int[], ...)
"scores": [5,4,5,3]
Objekt (class, ...)
"contacts": { ... }
null
"phone": null

Schreibregeln für JSON

  1. Strings immer in doppelten Anführungszeichen: 'text' — Fehler, korrekt ist "text".
  2. Objektschlüssel sind Strings in doppelten Anführungszeichen: z.B. "name": ...
  3. Kommas nur zwischen Elementen, keine abschließende Komma nach dem letzten Element.
  4. Einrückungen sind optional, erhöhen aber die Lesbarkeit.
  5. Zahlen ohne Anführungszeichen: "age": 25, nicht "age": "25".
  6. Boolesche Werte sind true/false (ohne Anführungszeichen), nicht True, FALSE oder "true".
  7. null wird als null geschrieben (ohne Anführungszeichen).

3. JSON aus Sicht eines Programmierers

Analogien zu C#-Typen:

  • JSON-Objekt ≈ Dictionary<string, object>
  • JSON-Array ≈ T[] oder List<T>
  • JSON-String ≈ normale Zeichenkette
  • JSON-Zahl ≈ int oder double (abhängig vom Wert)

Beispiel: Serialisierung eines Objekts zu JSON

Klasse:

public class Student
{
    public string Name { get; set; } = "";
    public int Age { get; set; }
    public bool IsStudent { get; set; }
    public int[] Scores { get; set; } = Array.Empty<int>();
}

Das resultierende JSON (vereinfacht, Details zur Serialisierung weiter unten):

{
    "Name": "Ivan",
    "Age": 25,
    "IsStudent": true,
    "Scores": [5, 4, 5, 3]
}

4. Beispiele gültiger JSON-Strukturen

Objekt mit Array und verschachtelten Objekten

{
  "product": "Kaffee",
  "price": 125.50,
  "inStock": true,
  "attributes": {
    "weight": 500,
    "unit": "gr"
  },
  "tags": ["getränk", "energie", "arabica"],
  "promotions": null
}

Array von Objekten

[
  {"id": 1, "name": "Peter"},
  {"id": 2, "name": "Maria"},
  {"id": 3, "name": "Otto"}
]

5. Beispiele ungültigen JSON (und warum)

Einfache Anführungszeichen:

{ 'name': 'Ivan' } // Fehler!

JSON verlangt doppelte Anführungszeichen.

Komma nach dem letzten Element:

{ "x": 1, "y": 2, } // Fehler!

Ein überflüssiges Komma am Ende ist nicht erlaubt.

Kommentare:

{
  // So eine Schönheit funktioniert leider nicht in JSON
  "name": "Ivan"
}

In JSON gibt es keine Kommentare.

6. Wozu braucht man JSON in echten Projekten?

Datenübertragung zwischen Systemen

JSON ist die universelle "gemeinsame Sprache" zwischen verschiedenen Programmen, meist über HTTP. Zum Beispiel spricht ein Server in C# mit einem Frontend in JavaScript — ihr gemeinsames Format ist JSON.

Speichern von Einstellungen und Daten

Viele Anwendungen speichern Konfigurationen in .json-Dateien. Zum Beispiel ist appsettings.json ein Standard für .NET-Anwendungen. Vorteile: leicht zu lesen, zu ändern und zu versionieren.

Server- und mobile APIs

Die meisten REST-APIs verwenden JSON als Request- und Response-Format: z.B. kommt eine Liste von Benutzern als Array von Objekten.

Konfiguration von Tools und Libraries

Viele Tools im .NET-Ökosystem (Serilog, Swagger u.ä.) nutzen JSON für Konfigurationen. XML taucht seltener auf — JSON ist kompakter und verständlicher.

7. Popularität von JSON: warum lieben es alle?

  • Lesbarkeit. Selbst Nicht-Programmierer verstehen, was was ist.
  • Einfachheit für den Netzwerktransport. Reiner Text, geringes "Gewicht".
  • Support in allen Sprachen. Serialisierung/Deserialisierung ist quasi "out of the box" vorhanden.
  • Praktisch für Konfigurationen. Jeder Editor arbeitet gut damit.
  • Einfach zu generieren. JSON zu erzeugen ist trivial.
  • Arrays, Verschachtelung, null. Alles intuitiv, ohne die "Klammernschmerzen" von XML.

Wann sollte man JSON wählen?

  • Du baust eine mobile oder Web-Anwendung;
  • Du arbeitest mit APIs externer Services;
  • Du möchtest deine Anwendung integrationsfreundlich für die Zukunft machen.

8. Wie C# mit JSON arbeitet

Kurz zu beliebten .NET-Bibliotheken:

Kleinstes Beispiel für Serialisierung/Deserialisierung:

using System.Text.Json;

// Wir wandeln ein Objekt in einen JSON-String um
var student = new Student { Name = "Ivan", Age = 25, IsStudent = true, Scores = new[] {5, 4, 5, 3} };
string json = JsonSerializer.Serialize(student);

// Und umgekehrt: Objekt aus einem JSON-String lesen
Student? parsed = JsonSerializer.Deserialize<Student>(json);

Console.WriteLine(json);

9. Typische Fehler bei Anfängern im Umgang mit JSON

Ein häufiger Fehler — Anführungszeichen vertauschen oder ein Komma vergessen. Manchmal versucht man, Kommentare hinzuzufügen (wie in C# — das wäre praktisch!), aber JSON verzeiht das nicht.

Eine weitere häufige Situation — Serialisierung von Objekten mit nicht initialisierten Collections: am Ende bekommt man "scores": null statt des erwarteten Arrays. Initialisiere Collections vorher.

Denke daran: JSON ist Text: große Datenmengen brauchen viel Speicher. Wenn du z.B. hypothetische 500 MB in JSON serialisierst, kann die Anwendung spürbar in der Performance leiden.

2
Aufgabe
C# SELF, Level 43, Lektion 4
Gesperrt
Daten aus einer Binärdatei lesen
Daten aus einer Binärdatei lesen
1
Umfrage/Quiz
Einführung in die Serialisierung, Level 43, Lektion 4
Nicht verfügbar
Einführung in die Serialisierung
Das Konzept der Serialisierung von Daten
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION