0Pricing
Lua Academy · Lektion

Warum JSON

Grundlagen des Datenaustauschs.

Warum JSON ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist JSON?

JSON (JavaScript Object Notation) ist ein kompaktes Textformat zum Speichern und Austauschen von Daten. Es ist für Menschen lesbar und sprachunabhängig.

Fast jede Web-API, Konfigurationsdatei und Datenbank verwendet JSON. Wenn Sie lernen, zwischen JSON und Lua-Tabellen umzuwandeln, können Ihre Skripte mit der Außenwelt kommunizieren.

JSON sieht Lua ähnlich

JSON-Objekte verwenden geschweifte Klammern mit Schlüssel-Wert-Paaren, während Arrays eckige Klammern verwenden. Das entspricht fast genau den Lua-Tabellen.

Ein JSON-Objekt wird zu einer Lua-Tabelle mit Zeichenketten als Schlüsseln, ein JSON-Array zu einer Lua-Tabelle mit numerischen Indizes ab 1.

-- JSON text
-- {"name": "Ada", "age": 36}

-- Equivalent Lua table
local person = { name = "Ada", age = 36 }
print(person.name)

Lua hat kein integriertes JSON

Anders als manche Sprachen wird Standard-Lua nicht mit JSON-Unterstützung ausgeliefert. Sie müssen eine Bibliothek verwenden.

Die beiden häufigsten Optionen sind dkjson (reines Lua, einfach zu installieren) und lua-cjson (eine schnelle C-Bibliothek). Beide stellen die Funktionen encode und decode bereit.

Eine JSON-Bibliothek laden

Sie laden eine JSON-Bibliothek mit require, genau wie jedes andere Lua-Modul. Die zurückgegebene Tabelle enthält die benötigten Funktionen.

Hier laden wir dkjson und binden es an eine lokale Variable namens json.

local json = require("dkjson")
-- now json.encode and json.decode are ready

Die beiden grundlegenden Operationen

Mit JSON führen Sie im Wesentlichen nur zwei Operationen aus: decode und encode.

Dekodieren wandelt eine JSON-Zeichenkette in eine Lua-Tabelle um, die Sie lesen können. Kodieren wandelt eine Lua-Tabelle zurück in eine JSON-Zeichenkette um, die Sie senden oder speichern können.

local json = require("dkjson")
local t = json.decode('{"ok": true}')  -- string -> table
local s = json.encode(t)                -- table -> string

Ein Beispiel für decode

Wenn Sie JSON-Text aus einer Datei oder von einer API erhalten, analysiert json.decode ihn und wandelt ihn in eine nutzbare Lua-Tabelle um.

Nach dem Dekodieren greifen Sie mit der normalen Lua-Syntax auf die Felder zu.

local json = require("dkjson")
local text = '{"city": "Oslo", "temp": 7}'
local data = json.decode(text)
print(data.city, data.temp)

Ein Beispiel für encode

Um JSON zu erstellen, füllen Sie eine Lua-Tabelle und übergeben sie an json.encode. Das Ergebnis ist eine Zeichenkette, die Sie direkt schreiben oder übertragen können.

local json = require("dkjson")
local book = { title = "Lua", pages = 328 }
local text = json.encode(book)
print(text)

JSON-Datentypen

JSON unterstützt eine kleine Gruppe von Typen: Zeichenketten, Zahlen, boolesche Werte, null, Objekte und Arrays.

Lua bildet diese auf Zeichenketten, Zahlen, boolesche Werte, nil und Tabellen ab. Beachten Sie, dass JSON-null kein vollkommen entsprechendes Lua-Gegenstück besitzt, was zu Überraschungen führen kann.

Warum JSON statt eigener Formate?

Sie könnten Ihr eigenes Textformat erfinden, aber JSON wird bereits überall verstanden. Editoren heben es hervor, Validatoren prüfen es, und andere Sprachen können es sofort analysieren.

Durch die Verwendung von JSON bleiben Ihre Daten portabel und Ihr Code lässt sich leichter debuggen.

Häufige Anwendungsfälle

Sie werden JSON verwenden, wenn Sie REST-APIs aufrufen, Konfigurationsdateien lesen, Ergebnisse zwischenspeichern oder Daten zwischen Prozessen übergeben.

Das Muster ist in jedem Fall gleich: Dekodieren Sie eingehendes JSON in eine Tabelle, arbeiten Sie damit und kodieren Sie es bei Bedarf wieder, bevor Sie es weitergeben.

local json = require("dkjson")
-- typical round trip
local data = json.decode(incoming)
data.seen = true
local out = json.encode(data)

Fehler beim Dekodieren behandeln

Das Dekodieren kann fehlschlagen, wenn der Text kein gültiges JSON enthält. dkjson gibt dann den Wert, eine Position und eine Fehlermeldung zurück, anstatt abzustürzen.

Prüfen Sie immer, ob der erste Rückgabewert nil ist, bevor Sie ihn verwenden.

local json = require("dkjson")
local data, pos, err = json.decode("{bad")
if not data then
  print("Invalid JSON:", err)
end

Kurze Überprüfung

Testen Sie Ihr Verständnis der JSON-Grundlagen in Lua.

Zusammenfassung

JSON ist ein universelles Datenformat, das sich problemlos auf Lua-Tabellen abbilden lässt. Da Standard-Lua keine JSON-Unterstützung bietet, laden Sie eine Bibliothek wie dkjson oder cjson.

Die beiden grundlegenden Operationen sind json.decode (Zeichenkette zu Tabelle) und json.encode (Tabelle zu Zeichenkette). Als Nächstes dekodieren Sie JSON ausführlich in Tabellen.

Häufig gestellte Fragen

Ist die Lektion „Warum JSON“ kostenlos?

Ja — der vollständige Text von „Warum JSON“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Warum JSON“?

Grundlagen des Datenaustauschs. Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Lua Academy zu starten?

Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Warum JSON“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?

Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum JSON
  2. JSON in Tabellen dekodieren
  3. Tabellen in JSON kodieren
  4. Verschachtelte Daten behandeln
← Zurück zu Lua Academy