Если вы не хотите использовать какую-либо библиотеку и хотите делать это с чистым кодом Lua, наиболее удобный для меня способ - использовать функцию table.concat
:
local result
for key, value in ipairs(tableWithData) do
-- prepare json key-value pairs and save them in separate table
table.insert(result, string.format("\"%s\":%s", key, value))
end
-- get simple json string
result = "{" .. table.concat(result, ",") .. "}"
Если у вашей таблицы есть вложенные таблицы, вы можете сделать это рекурсивно.