Lua zu JSON Konverter
Lua-Table einfügen. JSON rauskriegen.
Was das Tool macht
Wenn du schon mal eine Lua-Table aus einer Game-Config, einem Redis-Skript oder einem nginx-Handler unter OpenResty als JSON gebraucht hast, erledigt das hier die Umwandlung in einem Paste. Kein json.lua oder dkjson installieren, nur um eine Konstante zu serialisieren.
Lua-Tables sind tricky, weil sie Array-Teil (Integer-Keys ab 1) und Hash-Teil (String- oder gemischte Keys) in derselben Struktur mischen. Der Konverter erkennt, was für eine Form du hast: Eine reine Array-Table wird zum JSON-Array, eine reine Hash-Table zum JSON-Objekt, eine gemischte Table fällt auf ein JSON-Objekt mit stringifizierten Numerik-Keys zurück. Das entspricht dem, was das Lua-5.4-Referenzmanual beschreibt und was die gängigen JSON-Libs machen.
Verschachtelte Tables gehen so tief runter, wie du magst. nil wird zu null, true/false werden direkt übernommen, Zahlen bleiben Zahlen (Integer bleiben Integer). Strings mit einfachen oder doppelten Quotes oder mit Long-Brackets ([[...]]) werden alle korrekt geparst. Kommentare (-- und --[[ ... ]]) werden entfernt.
So benutzt du es
Drei Schritte. Egal ob kleine Table oder ausufernde Config.
Lua einfügen (oder Beispiel nehmen)
Pack deine Lua-Table in den linken Editor. Eine Array-Teil-Table, eine Hash-Teil-Table, verschachtelte Tables oder mehrere Top-Level-Deklarationen local x = {...} — alles okay.
Lass die Lua-Syntax, wie sie ist. Keys ohne Quotes (name = "..."), Keys mit Brackets (["foo-bar"] = ...) und Kommentare werden alle korrekt geparst.
Auf Konvertieren klicken
Grüner Button Konvertieren. Das Tool läuft durch die Table, erkennt auf jeder Ebene Array- oder Hash-Form und gibt passendes JSON aus.
JSON kopieren
Kopier das eingerückte JSON aus dem rechten Panel in eine Config-Datei, einen API-Call oder eine Test-Fixture. Fertig.
Wann das wirklich hilft
Game-/Engine-Configs migrieren
Viele Engines (Love2D, Defold, World-of-Warcraft-Addons) nutzen Lua-Tables für Config. Wenn die Pipeline auf JSON-getriebenes Tooling umzieht, ist das hier die Eins-zu-eins-Konvertierung.
OpenResty/Nginx-Handler debuggen
Du hast in einem OpenResty-Skript einen Response-Body als Lua-Table zusammengebaut — paste ihn hier rein und sieh das JSON, das beim Client ankommt, bevor du redeployst.
Redis-Lua-Skripte
Ein Redis-EVAL-Skript gibt eine komplexe Struktur zurück; das Lua-Table-Literal lässt sich gut aus den Logs ziehen. Konvertier es zu JSON und vergleich mit dem, was die App sieht.
Config in eine andere Sprache portieren
Du ziehst von einem Lua-gescripteten Tool auf ein Rewrite in Node oder Go um. Konvertier die alten Config-Tables als Migrations-Format zu JSON.
Häufige Fragen
Wie entscheidet es zwischen Array und Object?
Gleiche Regel wie json.lua: Hat die Table nur aufeinanderfolgende Integer-Keys ab 1, ist es ein Array. Sonst ein Object. Gemischte Tables (1, 2, "name") werden zu Objects mit stringifizierten Numerik-Keys, weil JSON-Arrays keine benannten Keys haben können.
Und nil innerhalb einer Table?
Ein nil-Wert entfernt diesen Key in Lua — der Konverter folgt der gleichen Regel und lässt nil-Keys im Output einfach weg. Ein einzelnes nil (z. B. local x = nil) wird zu JSON null.
Werden Long-Bracket-Strings wie <code>[[...]]</code> unterstützt?
Ja. Long-Bracket-Strings (auch [==[...]==] mit beliebig vielen Gleichheitszeichen) werden geparst und als JSON-Strings mit korrektem Escaping ausgegeben.
Kann ich mehrere Tables auf einmal einfügen?
Ja. Jedes Top-Level-local name = {...} oder name = {...} wird zu einem Key im Output-JSON. Anonyme Trailing-Tables kriegen Numerik-Keys. Nichts wird still geschluckt.
Wird mein Code gespeichert?
Nein — wir schicken ihn zur Konvertierung ans Backend und persistieren nichts. Trotzdem: alles Sensible vor dem Einfügen rausnehmen.
Kommt es mit LuaRocks-Rockspec-Dateien klar?
Ja. Rockspec-Dateien sind im Kern Lua-Tables, also konvertieren sie sauber — praktisch, um Dependency-Metadaten in ein JSON-Registry-Format zu migrieren.
Andere Tools, die du vielleicht brauchst
Lua zu JSON passt gut zum Rest der Toolbox: