Существует множество способов для решения вашей задачи. Будем опираться на использование Lua внутри Vikingo Engine.
Способ через json:
local json = require"json"
local t = {a=100, b={c=200}}
print(json.encode(t))
Способ через inspect:
local inspect = require"inspect"
local t = {a=100, b={c=200}}
print(inspect(t))
Некоторые примеры из интернета на чистом Lua:
#1
function tprint(t, s)
for k, v in pairs(t) do
local kfmt = '["' .. tostring(k) .. '"]'
if type(k) ~= "string" then
kfmt = "[" .. k .. "]"
end
local vfmt = '"' .. tostring(v) .. '"'
if type(v) == "table" then
tprint(v, s or "" .. kfmt)
else
if type(v) ~= "string" then
vfmt = tostring(v)
end
print(type(t)..(s or '')..kfmt..' = '..vfmt)
end
end
end
local t = {a = 100, b = {c = 200}}
print(tprint(t))
#2
function dump_table(o)
if type(o) == "table" then
local s = "{ "
for k, v in pairs(o) do
if type(k) ~= "number" then
k = '"' .. k .. '"'
end
s = s .. "[" .. k .. "] = " .. dump_table(v) .. ","
end
return s .. "} "
else
return tostring(o)
end
end
local t = {a = 100, b = {c = 200}}
print(dump_table(t))