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 readyDie 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 -> stringEin 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)
endKurze Ü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.