Convertisseur Lua vers JSON
Colle une table Lua. Récupère du JSON.
Ce que fait cet outil
Si tu as déjà récupéré une table Lua depuis une config de jeu, un script Redis ou un handler OpenResty sous nginx et qu'il te la fallait en JSON, ici ça se règle en un collage. Pas besoin d'installer json.lua ni dkjson juste pour sérialiser une constante.
Les tables Lua sont piégeuses parce qu'elles mélangent partie tableau (clés entières à partir de 1) et partie hash (clés string ou mixtes) dans la même structure. Le convertisseur détecte la forme : une table 100 % partie tableau sort en tableau JSON, une table 100 % hash sort en objet JSON, et une table mixte retombe sur un objet JSON avec les clés numériques stringifiées. C'est ce que décrit le manuel de référence Lua 5.4 et ce que font les bibliothèques JSON les plus courantes.
Les tables imbriquées descendent aussi loin que tu veux. nil devient null, true/false passent tels quels, les nombres restent des nombres (les entiers restent entiers). Les chaînes en quotes simples, doubles ou en crochets longs ([[...]]) sont toutes parsées correctement. Les commentaires (-- et --[[ ... ]]) sont retirés.
Comment l'utiliser
Trois étapes. Marche aussi bien pour une petite table que pour une config tentaculaire.
Colle ton Lua (ou essaie l'exemple)
Dépose ta table Lua dans l'éditeur de gauche. Une table partie tableau, une table partie hash, des tables imbriquées ou plusieurs déclarations local x = {...} au niveau supérieur — tout passe.
Laisse la syntaxe Lua telle quelle. Les clés sans quotes (name = "..."), les clés entre crochets (["foo-bar"] = ...) et les commentaires sont parsés sans souci.
Clique sur Convertir
Appuie sur le bouton vert Convertir. L'outil parcourt la table, détecte la forme tableau ou hash à chaque niveau et sort le JSON qui correspond.
Copie le JSON
Copie le JSON indenté du panneau de droite dans un fichier de config, un appel d'API ou une fixture de test. Fini.
Quand ça sert vraiment
Migrer des configs de jeux ou de moteurs
Beaucoup de moteurs (Love2D, Defold, addons World of Warcraft) utilisent des tables Lua pour leur config. Quand la chaîne d'outillage passe au JSON, c'est la conversion en un coup.
Debug de handlers OpenResty / Nginx
Tu as construit un body de réponse sous forme de table Lua dans un script OpenResty — colle-le ici pour voir le JSON que recevra le client, avant de redéployer.
Scripts Lua côté Redis
Un script EVAL Redis renvoie une structure complexe ; le littéral de table Lua se récupère facilement depuis les logs. Convertis-le en JSON pour comparer avec ce que voit l'appli.
Porter une config vers un autre langage
Tu passes d'un outil scripté en Lua à une réécriture Node ou Go. Convertis les anciennes tables de config en JSON comme format pivot de migration.
Questions fréquentes
Comment décide-t-il entre tableau et objet ?
La même règle que json.lua : si la table n'a que des clés entières consécutives à partir de 1, c'est un tableau. Sinon, c'est un objet. Les tables mixtes (1, 2, "name") sortent en objets avec les clés numériques stringifiées, parce qu'un tableau JSON ne peut pas avoir de clés nommées.
Et le nil dans une table ?
Une valeur nil retire cette clé en Lua — le convertisseur suit la même règle et omet simplement les clés valant nil dans la sortie. Un nil seul (par exemple local x = nil) devient null en JSON.
Gère-t-il les chaînes en crochets longs type <code>[[...]]</code> ?
Oui. Les chaînes en crochets longs (y compris [==[...]==] avec autant de signes égal que tu veux) sont parsées et ressorties en chaînes JSON avec l'échappement qui va bien.
Je peux coller plusieurs tables ?
Oui. Chaque local name = {...} ou name = {...} au niveau supérieur devient une clé dans le JSON de sortie. Les tables anonymes en fin reçoivent des clés numériques. Rien n'est jeté en silence.
Mon code est-il stocké ?
Non — on l'envoie au backend pour la conversion et on ne le persiste pas. Quand même, retire tout ce qui est sensible avant de coller.
Est-ce qu'il gère les fichiers rockspec de LuaRocks ?
Oui. Les fichiers rockspec sont des tables Lua au fond, donc la conversion est propre — pratique pour migrer des métadonnées de dépendances vers un registre JSON.
Autres outils qui peuvent servir
Lua vers JSON se marie bien avec le reste de la boîte à outils :