json.encode(table [,compatible])

Konvertiert eine Lua-Tabelle in eine JSON-codierte Zeichenfolge. Der spezielle Wert " json.NULL kann verwendet werden, um einen Nullwert in einer Lua-Tabelle zu speichern, da es nicht möglich ist, einen Lua-Nullwert in einer Tabelle zu speichern.

JSON unterstützt ein Array mit Ganzzahlindizes oder ein Objekt mit Zeichenfolgeindizes, wohingegen Lua einer Tabelle die Verwendung von Ganzzahl- und Zeichenfolgewerten für Schlüssel in derselben Tabelle ermöglicht. Damit eine beliebige Lua-Tabelle in eine Zeichenfolge serialisiert werden kann, verwendet nzLua standardmäßig ein Codierformat, das möglicherweise zu einer serialisierten Tabelle führt, die nicht mit Standard-JSON kompatibel ist. Beispielsweise kann die unten stehende Tabelle nicht im JSON-Standardformat codiert werden, da sie sowohl Ganzzahlindizes als auch einen Zeichenfolgeindex aufweist.
t = {111,222,333,foo="abc"}

Die Verwendung von " json.encode(t) für diese Tabelle ergibt die Zeichenfolge{1:111,2:222,3:333,"foo":"abc"}", was keine zulässige Kodierung für JSON ist, während " json.encode(t,true) die Zeichenfolge{"1":111,"2":222,"3":333,"foo":"abc"}" ergibt. Im kompatiblen Format werden alle ganzzahligen Schlüssel der Tabelle in Zeichenfolgeschlüssel konvertiert.

Die Funktion " json.encode versucht nicht, rekursive Tabellen zu erkennen, daher führt der unten gezeigte Code zu einem Stapelüberlauffehler.
t = {1,2,3}
t[4] = t
str = json.encode(t)
Beispiel
t = {a=123,b=987,c=333,d=json.NULL}
str = json.encode(t)