Lua naar JSON Converter
Plak een Lua-table. Krijg JSON terug.
Wat deze tool doet
Als je ooit een Lua-table uit een game-config, een Redis-script of een nginx-OpenResty-handler als JSON nodig had, regel je het hier met één paste. Geen json.lua of dkjson hoeven installeren om één constante te serialiseren.
Lua-tables zijn wat lastig, want ze mengen array-part (integer-keys vanaf 1) en hash-part (string- of gemengde keys) in dezelfde structuur. De converter detecteert welke vorm je hebt: een pure array-part-table wordt een JSON-array, een pure hash-part-table wordt een JSON-object, en een gemengde table valt terug op een JSON-object met de numerieke keys ge-stringificeerd. Dat komt overeen met wat de Lua 5.4-referentiemanual beschrijft en wat de gangbare JSON-libs doen.
Geneste tables gaan zo diep als je wilt. nil wordt null, true/false mappen recht door, getallen blijven getallen (integers blijven integers). Strings met enkele quotes, dubbele quotes of long brackets ([[...]]) worden allemaal netjes geparsed. Commentaar (-- en --[[ ... ]]) wordt eruit gegooid.
Hoe je het gebruikt
Drie stappen. Werkt voor kleine tables én voor configs die de hele file vullen.
Plak je Lua (of pak het voorbeeld)
Smijt je Lua-table in de linker editor. Een array-part-table, een hash-part-table, geneste tables of meerdere top-level local x = {...}-declaraties — allemaal prima.
Laat de Lua-syntax met rust. Keys zonder quotes (name = "..."), keys met brackets (["foo-bar"] = ...) en commentaar worden allemaal correct geparsed.
Druk op Converteren
Klik op de groene Converteren-knop. De tool loopt door de table, detecteert op elk niveau array- of hash-vorm en spuugt de bijbehorende JSON uit.
Kopieer de JSON
Kopieer de geïndenteerde JSON uit het rechterpaneel in een config-file, een API-call of een test-fixture. Klaar.
Wanneer dit echt van pas komt
Game-/engine-configs migreren
Veel engines (Love2D, Defold, World of Warcraft-addons) gebruiken Lua-tables voor config. Als je pipeline overgaat op JSON-tooling, is dit de conversie in één keer.
OpenResty-/Nginx-handler debuggen
Je hebt een response-body als Lua-table opgebouwd in een OpenResty-script — paste hem hier om te zien wat de client straks binnenkrijgt, nog vóór je redeployed.
Redis Lua-scripts
Een Redis EVAL-script geeft een complexe structuur terug; het Lua-table-literal plak je makkelijk uit de logs. Converteer naar JSON om te vergelijken met wat de app ziet.
Config porten naar een andere taal
Je stapt over van een Lua-gescripte tool naar een rewrite in Node of Go. Converteer de oude config-tables naar JSON als migratieformaat.
Veelgestelde vragen
Hoe bepaalt hij array of object?
Zelfde regel die json.lua hanteert: heeft de table alleen opeenvolgende integer-keys vanaf 1, dan is het een array. Anders is het een object. Gemengde tables (1, 2, "name") komen er uit als objects met ge-stringificeerde numerieke keys, want JSON-arrays kunnen geen benoemde keys hebben.
En nil in een table?
Een nil-waarde verwijdert die key in Lua — de converter volgt dezelfde regel en laat nil-keys in de output gewoon weg. Een losse nil (bijv. local x = nil) wordt JSON null.
Ondersteunt hij long-bracket-strings zoals <code>[[...]]</code>?
Ja. Long-bracket-strings (inclusief [==[...]==] met willekeurig veel =-tekens) worden geparsed en als JSON-strings met juiste escaping uitgegeven.
Mag ik meerdere tables tegelijk pasten?
Ja. Elke top-level local name = {...} of name = {...} wordt een key in de output-JSON. Anonieme trailing tables krijgen numerieke keys. Er wordt niks stilletjes weggegooid.
Wordt mijn code opgeslagen?
Nee — we sturen hem naar de backend voor de conversie en bewaren niks. Haal voor de zekerheid wel gevoelige dingen eruit vóór je paste.
Gaat het ook met LuaRocks-rockspec-files?
Ja. Rockspec-files zijn in de kern Lua-tables, dus die converteren schoon — handig om dependency-metadata naar een JSON-registry-formaat te migreren.
Andere tools die je misschien nodig hebt
Lua naar JSON combineert lekker met de rest van de toolbox: