JSON: Was es ist, Datenstruktur und Funktionsprinzip

Autor: IT Sectr Veröffentlicht: 2026-03-08 Lesezeit: 8 Min.

JSON (JavaScript Object Notation) ist ein textbasiertes Datenaustauschformat, das auf der JavaScript-Objektsyntax basiert. Es wird überall verwendet: von REST-APIs und Konfigurationsdateien bis hin zur Datenspeicherung in Datenbanken und mobilen Anwendungen. Laut der offiziellen JSON-Website ist das Format sprachunabhängig und wird von praktisch allen modernen Plattformen unterstützt. JSON ist zum De-facto-Standard für die Datenübertragung zwischen Client und Server geworden.

Wichtige Punkte

  • JSON — ein leichtes Textformat für strukturierte Daten basierend auf der JavaScript-Syntax
  • Sechs Datentypen — Zeichenkette, Zahl, Boolean, null, Array und Objekt für beliebige Strukturen
  • Universalität — von allen Programmiersprachen und Plattformen unterstützt
  • REST-API — das Hauptformat für den Datenaustausch in Web- und Mobil-anwendungen
  • Lesbarkeit für Menschen — einfache Syntax, leicht ohne Werkzeuge lesbar und bearbeitbar

Was ist JSON?

JSON ist ein Textformat zur Darstellung strukturierter Daten, basierend auf der JavaScript-Syntax. Trotz seiner Herkunft aus JavaScript ist das Format völlig sprachunabhängig — Parser und Serialisierer existieren für alle gängigen Programmiersprachen.

Die Geschichte von JSON begann in den frühen 2000er Jahren, als Douglas Crockford eine Teilmenge der JavaScript-Syntax für den Datenaustausch extrahierte. Im Jahr 2013 wurde das Format als ECMA-404 und später als ISO/IEC 21778:2017 standardisiert. Der Name steht für JavaScript Object Notation.

Der Hauptvorteil von JSON ist seine minimalistische Syntax. Zur Beschreibung von Daten werden nur sechs Typen verwendet: Zeichenkette, Zahl, Boolean, null, Array und Objekt. Dies ist ausreichend, um jede in Anwendungen verwendete Datenstruktur darzustellen.

Wo JSON verwendet wird

  • REST-API — das Hauptformat für Anfragen und Antworten zwischen Server und Client
  • Konfigurationsdateien — package.json, tsconfig.json, .prettierrc
  • Datenbanken — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Mobile Anwendungen — Speichern von Einstellungen, Daten-Caching
  • Web-Technologien — WebSocket, Server-Sent Events, localStorage

JSON-Syntax und Datentypen

Die JSON-Syntax ist äußerst einfach: Daten werden als Schlüssel-Wert-Paare dargestellt, wobei der Schlüssel eine Zeichenkette in doppelten Anführungszeichen und der Wert einer von sechs Basistypen ist. Objekte werden in geschweifte Klammern gesetzt, Arrays in eckige Klammern. Zeichenketten müssen doppelte Anführungszeichen verwenden; einfache Anführungszeichen sind nicht erlaubt.

Zahlen in JSON können ganzzahlig oder gleitkommabasiert, positiv oder negativ, mit Exponentenschreibweise sein. Boolesche Werte werden durch die Literale true und false dargestellt, das Fehlen eines Werts durch null. Arrays enthalten eine geordnete Menge von Werten beliebigen Typs, einschließlich verschachtelter Arrays und Objekte.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "Unterstützung für Verschachtelung"
  }
}
Typ Beispiel Beschreibung
Zeichenkette „Text“ In doppelten Anführungszeichen, mit Escape-Sequenzen
Zahl 42 Ganzzahl, Gleitkomma, Exponent
Boolean true true oder false — ohne Anführungszeichen
null null Fehlen eines Wertes
Objekt {} Ungeordnete Menge von Schlüssel-Wert-Paaren
Array [] Geordnete Liste von Werten

JSON in REST-API

JSON ist das primäre Datenaustauschformat für REST-APIs in der Mobil- und Webentwicklung. Der Server sendet JSON im Antwortbody, der Client im Anforderungsbody. Der Standard-Content-Type-Header für JSON ist application/json.

Moderne REST-APIs verwenden JSON, um alle Arten von Daten zu übertragen: von einfachen Listen bis zu komplexen verschachtelten Strukturen mit Beziehungen zwischen Entitäten. Client-Bibliotheken (wie Axios in JavaScript oder Retrofit auf Android) serialisieren und deserialisieren JSON automatisch und befreien den Entwickler von manueller Analyse.

Ein wichtiger Vorteil von JSON in REST-APIs ist die Möglichkeit der partiellen Datenübertragung (Teilantwort) über Abfrageparameter sowie die Unterstützung verschachtelter Ressourcen ohne zusätzliche Serveranfragen.

JSON-Parsing auf mobilen Plattformen

JSON-Parsing auf mobilen Plattformen erfolgt mit integrierten Werkzeugen. Android verwendet Gson von Google oder Moshi von Square, iOS verwendet das Codable-Protokoll mit JSONDecoder. Jede Plattform bietet praktische Werkzeuge zur Konvertierung von JSON in native Objekte und zurück.

JSON auf Android (Kotlin)

Auf Android ist der gängige Ansatz die Verwendung von Gson oder Moshi. Definieren Sie einfach eine Datenklasse mit @SerializedName-Annotationen und rufen Sie fromJson zur Deserialisierung auf. Die Bibliothek ordnet automatisch JSON-Feldnamen den Klasseneigenschaften zu.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON auf iOS (Swift)

Auf iOS wird das integrierte Codable-Protokoll mit JSONDecoder verwendet. Die Datenstruktur wird als struct deklariert, das Codable entspricht, wonach JSON mit einer einzigen Zeile geparst wird. JSONEncoder führt die umgekehrte Serialisierung durch — konvertiert ein Objekt in JSON zum Senden an den Server.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: Formatvergleich

JSON und XML sind die beiden Hauptformate zur Übertragung strukturierter Daten. JSON punktet mit Einfachheit und Leistung, XML mit Strenge und Validierung. Die Wahl zwischen ihnen hängt von den Projektanforderungen ab: REST-APIs verwenden häufiger JSON, komplexe Dokumente mit Schemata verwenden XML.

XML erfordert schließende Tags für jedes Element, was die Datengröße im Vergleich zu JSON um das 2- bis 3-fache erhöht. Gleichzeitig unterstützt XML Namensräume, XSD-Schemata, Attribute und XSLT-Transformation, was es für Dokumentenverwaltung und Unternehmenssystemintegration leistungsfähiger macht.

Merkmal JSON XML
Syntax Minimalistisch, Schlüssel-Wert Tag-basiert, öffnende und schließende Tags
Datengröße Kompakt 2-3 mal größer als JSON
Datentypen Sechs Basistypen Nur Text, Typen über Schemata
Validierung Keine integrierte, über JSON Schema XSD — streng und ausgereift
Namensräume Keine Vollständige Namespace-Unterstützung
Parsing-Geschwindigkeit Hoch Niedriger aufgrund der Komplexität

Beispiele für die Arbeit mit JSON

Beispiele zeigen typische JSON-Operationen in der mobilen Entwicklung: Parsen von API-Antworten, Erstellen von JSON zum Senden und Verarbeiten verschachtelter Strukturen. Das Verständnis dieser Muster ist für jeden Entwickler mobiler Anwendungen unerlässlich.

Serialisierung eines Objekts in JSON

In JavaScript konvertiert JSON.stringify ein Objekt in einen JSON-String. Das zweite Argument kann ein Array von Schlüsseln für die selektive Serialisierung oder eine Ersetzungsfunktion sein. Das dritte Argument legt die Einrückung für die Formatierung fest.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Parsen von verschachteltem JSON

In Kotlin mit der Bibliothek Moshi werden verschachtelte JSON-Objekte durch verschachtelte Datenklassen behandelt. Die @Json-Annotation gibt den JSON-Feldnamen an, wenn er sich vom Eigenschaftsnamen der Klasse unterscheidet. Arrays werden als List mit dem Elementtyp dargestellt.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: Strukturvalidierung

JSON Schema ist eine Sprache zur Beschreibung der Struktur eines JSON-Dokuments, ähnlich wie XSD für XML. Mit JSON Schema können Sie Pflichtfelder, Datentypen, Wertebereiche, Zeichenkettenmuster und verschachtelte Strukturen angeben. Die Schema-Validierung erkennt Datenfehler, bevor sie in der Anwendung verarbeitet werden.

JSON Schema wird häufig in OpenAPI (Swagger) zur Dokumentation von REST-APIs, in Eingabedaten-Validierungsformularen und beim Testen verwendet. Die Schemadatei selbst ist ein JSON-Dokument, sodass standardmäßige JSON-Parser sie lesen können. Für alle gängigen Programmiersprachen gibt es Online-Validatoren und Bibliotheken.

In der mobilen Entwicklung wird JSON Schema zur Validierung von Serverantworten während des Testens und zur Überprüfung von Konfigurationsdateien verwendet. Bibliotheken wie network-validator auf Android und json-schema-validator ermöglichen es, die Validierung direkt in den Entwicklungsprozess einzubetten und Fehler frühzeitig zu verhindern.

Häufig gestellte Fragen

Welche Datentypen unterstützt JSON?

JSON unterstützt sechs Typen: Zeichenkette (in doppelten Anführungszeichen), Zahl (ganzzahlig und gleitkommabasiert), Boolean (true/false), null, Objekt (Schlüssel-Wert-Paare in {}) und Array (Liste von Werten in []). Dies ist für jede Datenstruktur in Anwendungen ausreichend.

Können Kommentare in JSON verwendet werden?

Nein, der JSON-Standard unterstützt keine Kommentare. Wenn Sie Kommentare benötigen, verwenden Sie JSON5 (erweitertes JSON) oder fügen Sie ein Beschreibungsfeld hinzu, z. B. „_comment“: „Erklärung“. Einige Werkzeuge wie VS Code unterstützen Kommentare in JSON-Konfigurationsdateien, aber dies ist eine nicht standardmäßige Erweiterung.

Wie unterscheidet sich JSON von JSONB in PostgreSQL?

JSONB ist ein binäres Speicherformat für JSON in PostgreSQL. Im Gegensatz zu textuellen JSON ist JSONB schneller in der Verarbeitung, unterstützt Indizierung (GIN-Indizes) und garantiert Schlüsseleindeutigkeit. Allerdings benötigt JSONB aufgrund der hinzugefügten Metadaten mehr Speicherplatz auf der Festplatte.

Wie überprüft man, ob JSON gültig ist?

Verwenden Sie JSONLint (jsonlint.com) für eine schnelle Überprüfung, die integrierte JSON.parse()-Funktion in JavaScript mit try-catch oder IDE-Plugins. Die Validierung umfasst die Überprüfung korrekter Anführungszeichen, Klammer-schließung und Typkonformität. Für komplexe Schemata verwenden Sie JSON Schema Validator.

Was ist die maximale Größe einer JSON-Datei?

Es gibt keine Begrenzung in der JSON-Spezifikation. In der Praxis wird die Größe durch den Gerätespeicher und die Parser-Fähigkeiten begrenzt. Für mobile Anwendungen wird empfohlen, 1-2 MB pro Antwort nicht zu überschreiten und für große Daten Paginierung oder Streaming zu verwenden.

Zusammenfassung

  • JSON — ein minimalistisches Textformat mit sechs Datentypen zum Austausch strukturierter Informationen
  • Sprachunabhängigkeit — JSON-Parser existieren für alle gängigen Programmiersprachen
  • REST-API verwendet JSON als Standardformat für Anfragen und Antworten in mobilen Anwendungen
  • Parsing erfolgt mit integrierten Werkzeugen: Gson/Moshi auf Android, Codable auf iOS
  • JSON ist 2-3 mal kompakter als XML, aber Protobuf in der Leistung unterlegen
  • Lesbarkeit für Menschen — Syntax ohne spezielle Werkzeuge leicht lesbar und debuggbar
  • JSON Schema — ein zusätzliches Werkzeug zur Validierung von Struktur und Datentypen

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch