json.encode (table [,compatible])
Convertit un tableau Lua en une chaîne encodée en JSON. La valeur spéciale " json.NULL peut être utilisée pour stocker une valeur nulle dans un tableau Lua, puisqu'il n'est pas possible de stocker une valeur nulle Lua dans un tableau.
JSON prend en charge un tableau avec des index entiers ou un objet avec des index de type chaîne de caractères, tandis que Lua permet à un tableau d'utiliser des valeurs entières et des valeurs de type chaîne de caractères pour les clés du même tableau. Pour permettre à n'importe quelle table Lua d'être sérialisée en une chaîne de caractères, nzLua utilise par défaut un format d'encodage qui peut résulter en une table sérialisée qui n'est pas compatible avec le standard JSON. Par exemple, le tableau ci-dessous ne peut pas être encodé dans le format JSON standard car il comporte à la fois des index entiers et un index de chaîne.
t = {111,222,333,foo="abc"}
L'utilisation de " json.encode(t) dans ce tableau produit la chaîne "{1:111,2:222,3:333,"foo":"abc"}, qui n'est pas un encodage légal pour JSON, tandis que " json.encode(t,true) produit la chaîne "{"1":111,"2":222,"3":333,"foo":"abc"}. Dans le format compatible, toutes les clés entières du tableau sont converties en clés de type chaîne.
La fonction "
json.encode n'essaie pas de détecter les tableaux récursifs, et le code ci-dessous entraînera donc une erreur de dépassement de pile.t = {1,2,3}
t[4] = t
str = json.encode(t)Exemplet = {a=123,b=987,c=333,d=json.NULL}
str = json.encode(t)