Skip to main content

Was ist JSON?

 

JSON steht für JavaScript Object Notation. Es ist ein leichtgewichtetes und für Menschen gut lesbares Datenformat, das hauptsächlich zum Datenaustausch zwischen einem Server und einer Webanwendung verwendet wird.


 

JSON Cheat Sheet 🧠

 

 

Grundlegende Syntaxregeln

 

  • Schlüssel-Wert-Paare: Daten werden in Paaren aus einem Schlüssel (Name) und einem Wert geschrieben: "schlüssel": "wert".
  • Schlüssel: Müssen immer Zeichenketten (Strings) sein und in doppelten Anführungszeichen (") stehen.
  • Trennzeichen: Schlüssel-Wert-Paare werden durch ein Komma (,) getrennt.
  • Objekte: Werden in geschweifte Klammern ({}) eingeschlossen. Sie enthalten eine unsortierte Sammlung von Schlüssel-Wert-Paaren.
  • Arrays: Werden in eckige Klammern ([]) eingeschlossen. Sie enthalten eine geordnete Liste von Werten.

 

Datentypen

 

JSON unterstützt die folgenden Datentypen:

  • String: Eine Zeichenkette in doppelten Anführungszeichen. Bsp: "Hallo Welt"
  • Number: Eine Ganzzahl oder eine Fließkommazahl. Bsp: 42, 3.14159
  • Object: Eine Sammlung von Schlüssel-Wert-Paaren. Bsp: { "name": "Max", "alter": 30 }
  • Array: Eine geordnete Liste von Werten. Bsp: [ "Apfel", "Banane", "Kirsche" ]
  • Boolean: Die Werte true oder false (ohne Anführungszeichen).
  • null: Repräsentiert einen leeren oder nicht vorhandenen Wert (ohne Anführungszeichen).

 

Beispiel einer JSON-Struktur

 

JSON

{
  "benutzername": "MaxMustermann",
  "aktiv": true,
  "registriert_seit": 2023,
  "letzter_login": null,
  "interessen": [
    "Programmieren",
    "Radfahren",
    "Lesen"
  ],
  "adresse": {
    "strasse": "Musterstraße 1",
    "plz": "12345",
    "stadt": "Musterstadt"
  }
}

 

JSON in der Praxis: Erstellen, Speichern & Einlesen

 

Hier wird gezeigt, wie man JSON-Daten in verschiedenen Sprachen verarbeitet.

 

JavaScript (Node.js & Browser)

 

JavaScript bietet native Methoden zur Verarbeitung von JSON.

  • Erzeugen & Speichern (in Node.js)
    JavaScript

    const fs = require('fs'); // Dateisystem-Modul
    
    // 1. JavaScript-Objekt erstellen
    const user = {
      name: "Anna",
      id: 123,
      isVerified: true,
      roles: ["editor", "viewer"]
    };
    
    // 2. Objekt in einen JSON-String umwandeln
    // Das dritte Argument (2) formatiert den String mit 2 Leerzeichen Einrückung (lesbarer)
    const jsonString = JSON.stringify(user, null, 2);
    
    // 3. String in eine Datei schreiben
    fs.writeFileSync('user.json', jsonString);
    console.log("Datei wurde erfolgreich gespeichert!");
    
  • Einlesen & Umwandeln
    JavaScript

    const fs = require('fs');
    
    // 1. JSON-Datei von der Festplatte lesen
    const fileContent = fs.readFileSync('user.json', 'utf8');
    
    // 2. JSON-String in ein JavaScript-Objekt umwandeln (parsen)
    const userData = JSON.parse(fileContent);
    
    // 3. Auf die Daten zugreifen
    console.log(userData.name); // Gibt "Anna" aus
    console.log(userData.roles[0]); // Gibt "editor" aus
    

 

Java (mit der org.json Bibliothek)

 

Eine gängige Bibliothek ist org.json. Du musst sie zu deinem Projekt hinzufügen (z.B. via Maven).

  • Erzeugen & Speichern
    Java

    import org.json.JSONObject;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.io.IOException;
    
    public class JsonWriter {
        public static void main(String[] args) {
            // 1. JSONObject erstellen und befüllen
            JSONObject game = new JSONObject();
            game.put("title", "Catan");
            game.put("releaseYear", 1995);
            game.put("isCooperative", false);
    
            // 2. In einen formatierten String umwandeln (Einrückung 4)
            String jsonString = game.toString(4);
    
            // 3. In eine Datei schreiben
            try {
                Files.write(Paths.get("game.json"), jsonString.getBytes());
                System.out.println("Datei erfolgreich geschrieben.");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
  • Einlesen & Umwandeln
    Java

    import org.json.JSONObject;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.io.IOException;
    
    public class JsonReader {
        public static void main(String[] args) {
            try {
                // 1. Datei als String einlesen
                String content = new String(Files.readAllBytes(Paths.get("game.json")));
    
                // 2. String in ein JSONObject parsen
                JSONObject gameObject = new JSONObject(content);
    
                // 3. Auf die Daten zugreifen
                String title = gameObject.getString("title");
                int year = gameObject.getInt("releaseYear");
    
                System.out.println("Titel: " + title); // Gibt "Titel: Catan" aus
                System.out.println("Jahr: " + year);   // Gibt "Jahr: 1995" aus
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

 

PHP

 

PHP hat eingebaute Funktionen, die die Arbeit mit JSON sehr einfach machen.

  • Erzeugen & Speichern
    PHP

    <?php
    // 1. PHP-Array (assoziativ) erstellen
    $data = [
        "produkt" => "Laptop",
        "hersteller" => "Marke X",
        "verfügbar" => true,
        "preis" => 1299.99,
        "speicher_optionen" => [256, 512, 1024]
    ];
    
    // 2. Array in einen JSON-String umwandeln
    // JSON_PRETTY_PRINT sorgt für eine lesbare Formatierung
    $jsonString = json_encode($data, JSON_PRETTY_PRINT);
    
    // 3. String in eine Datei schreiben
    file_put_contents('produkt.json', $jsonString);
    echo "Produkt-Datei wurde erstellt.";
    ?>
    
  • Einlesen & Umwandeln
    PHP

    <?php
    // 1. Inhalt der JSON-Datei lesen
    $jsonContent = file_get_contents('produkt.json');
    
    // 2. JSON-String in ein PHP-Objekt oder -Array umwandeln
    // Das zweite Argument `true` wandelt es in ein assoziatives Array um.
    $productData = json_decode($jsonContent, true);
    
    // 3. Auf die Daten zugreifen
    echo "Produkt: " . $productData['produkt']; // Gibt "Produkt: Laptop" aus
    echo "<br>";
    echo "Erste Speicheroption: " . $productData['speicher_optionen'][0] . " GB"; // Gibt "Erste Speicheroption: 256 GB" aus
    ?>
    

 

Muster-JSON: Brettspiel-Datenbank 🎲

 

Diese JSON-Datei enthält ein Array von Brettspielen und nutzt alle JSON-Datentypen.

brettspiele.json:

JSON

[
  {
    "id": 1,
    "name": "Die Siedler von Catan",
    "erscheinungsjahr": 1995,
    "bewertung_bgg": 7.14,
    "kooperativ": false,
    "erweiterung_von": null,
    "designer": [
      "Klaus Teuber"
    ],
    "spieleranzahl": {
      "min": 3,
      "max": 4
    },
    "kategorien": [
      "Wirtschaft",
      "Verhandlung",
      "Aufbau"
    ]
  },
  {
    "id": 2,
    "name": "Pandemie",
    "erscheinungsjahr": 2008,
    "bewertung_bgg": 7.59,
    "kooperativ": true,
    "erweiterung_von": null,
    "designer": [
      "Matt Leacock"
    ],
    "spieleranzahl": {
      "min": 2,
      "max": 4
    },
    "kategorien": [
      "Medizin",
      "Strategie",
      "Kooperativ"
    ]
  },
  {
    "id": 3,
    "name": "Auf den Spuren von Marco Polo",
    "erscheinungsjahr": 2015,
    "bewertung_bgg": 7.8,
    "kooperativ": false,
    "erweiterung_von": null,
    "designer": [
      "Simone Luciani",
      "Daniele Tascini"
    ],
    "spieleranzahl": {
      "min": 2,
      "max": 4
    },
    "kategorien": [
      "Wirtschaft",
      "Reisen",
      "Dice Rolling"
    ]
  }
]

Leave a Reply