json.encode(tabla [,compatible])

Convierte una tabla Lua en una cadena codificada en JSON. El valor especial ' json.NULL ' se puede utilizar para almacenar un valor nulo en una tabla Lua, ya que no es posible almacenar un valor nulo Lua en una tabla.

JSON admite un array con índices enteros o un objeto con índices de cadena, mientras que Lua permite que una tabla utilice valores enteros y de cadena para las claves de la misma tabla. Para permitir que cualquier tabla Lua sea serializada a una cadena, nzLua utiliza por defecto un formato de codificación que puede resultar en una tabla serializada que no es compatible con JSON estándar. Por ejemplo, la tabla siguiente no puede codificarse en el formato JSON estándar, ya que tiene índices enteros y un índice de cadena.
t = {111,222,333,foo="abc"}

El uso de ' json.encode(t) en esta tabla produce la cadena '{1:111,2:222,3:333,"foo":"abc"}', que no es una codificación legal para JSON, mientras que ' json.encode(t,true) produce la cadena '{"1":111,"2":222,"3":333,"foo":"abc"}'. En el formato compatible, todas las claves enteras de la tabla se convierten en claves de cadena.

La función ' json.encode ' no intenta detectar tablas recursivas, por lo que el código que se muestra a continuación producirá un error de desbordamiento de pila.
t = {1,2,3}
t[4] = t
str = json.encode(t)
Ejemplo
t = {a=123,b=987,c=333,d=json.NULL}
str = json.encode(t)