Pega Lua a la izquierda y pulsa "Convertir" — lo pasamos a JSONPega código Lua

Qué hace esta herramienta

Si alguna vez has tenido una tabla de Lua salida de un config de un juego, de un script de Redis o de un handler de OpenResty en nginx y te ha tocado pasarla a JSON, aquí lo haces de un pegado. Sin instalar json.lua ni dkjson solo para serializar una constante.

Las tablas de Lua tienen su miga porque mezclan parte array (claves enteras que empiezan en 1) y parte hash (claves string o mixtas) en la misma estructura. El conversor detecta qué forma tiene la tuya: una tabla puramente array sale como array JSON, una puramente hash como objeto JSON, y una mixta cae a objeto JSON con las claves numéricas pasadas a string. Eso es lo que describe el manual de referencia de Lua 5.4 y lo que hacen las librerías JSON más usadas.

Las tablas anidadas bajan hasta donde quieras. nil se vuelve null, true/false mapean directo, los números siguen siendo números (los enteros siguen siendo enteros). Cadenas con comillas simples, dobles o con corchetes largos ([[...]]) se parsean todas bien. Los comentarios (-- y --[[ ... ]]) se eliminan.

Cómo usarlo

Tres pasos. Sirve tanto para tablas pequeñas como para configs kilométricos.

1

Pega tu Lua (o prueba el ejemplo)

Suelta tu tabla de Lua en el editor de la izquierda. Una tabla tipo array, una tabla hash, tablas anidadas o varias declaraciones local x = {...} de nivel superior — todo vale.

Deja la sintaxis de Lua tal cual. Claves sin comillas (name = "..."), claves con corchetes (["foo-bar"] = ...) y los comentarios se parsean sin problema.

2

Pulsa Convertir

Dale al botón verde Convertir. La herramienta recorre la tabla, detecta forma de array o hash en cada nivel y emite el JSON correspondiente.

3

Copia el JSON

Copia el JSON indentado del panel derecho a un archivo de config, a una llamada a API o a un fixture de test. Listo.

Cuándo viene realmente bien

Migrar configs de juegos o motores

Muchos motores (Love2D, Defold, addons de World of Warcraft) usan tablas de Lua para el config. Cuando el pipeline se mueve a herramientas basadas en JSON, esta es la conversión de una pasada.

Depurar handlers de OpenResty / Nginx

Has montado un body de respuesta como tabla de Lua en un script de OpenResty — pégalo aquí y ves el JSON que recibirá el cliente, antes de redesplegar.

Scripts Lua en Redis

Un script EVAL de Redis devuelve una estructura compleja; el literal de tabla Lua se saca fácil de los logs. Pásalo a JSON para compararlo con lo que ve la app.

Portar config a otro lenguaje

Estás pasando de una herramienta scripteada en Lua a un reescritura en Node o Go. Convierte las tablas del config viejo a JSON como formato de migración.

Preguntas frecuentes

¿Cómo decide si es array u objeto?

La misma regla que usa json.lua: si la tabla solo tiene claves enteras consecutivas empezando en 1, es un array. Si no, es un objeto. Las tablas mixtas (1, 2, "name") salen como objetos con las claves numéricas pasadas a string, porque los arrays JSON no pueden llevar claves con nombre.

¿Y el nil dentro de una tabla?

Un valor nil elimina esa clave en Lua — el conversor sigue la misma regla y simplemente omite las claves con valor nil en la salida. Un nil suelto (por ejemplo local x = nil) se vuelve null en JSON.

¿Soporta strings con corchetes largos tipo <code>[[...]]</code>?

Sí. Los strings con corchetes largos (incluidos [==[...]==] con el nivel de iguales que sea) se parsean y se emiten como strings JSON con el escape adecuado.

¿Puedo pegar varias tablas?

Sí. Cada local name = {...} o name = {...} de nivel superior se vuelve una clave en el JSON de salida. Las tablas anónimas al final reciben claves numéricas. Nada se descarta en silencio.

¿Guardáis mi código?

No — lo enviamos al backend para hacer la conversión y no lo persistimos. Aun así, quita cualquier cosa sensible antes de pegar.

¿Trabaja con archivos rockspec de LuaRocks?

Sí. Los archivos rockspec son tablas de Lua en el fondo, así que se convierten limpiamente — útil para migrar metadatos de dependencias a un registro en formato JSON.

Otras herramientas que te pueden venir bien

Lua a JSON combina bien con el resto de la caja de herramientas: