function debug.dump(obj)
print(debug.getDumpString(obj))
end
function debug.getDumpString(obj)
local DumpObj = false
local GetIndent = false
local WrapKey = false
local WrapVal = false
--获取缩进量
GetIndent = function(level)
return string.rep("\t", level)
end
--键
WrapKey = function(val)
if type(val) == "number" then
return "[" .. val .. "]"
elseif type(val) == "string" then
return '["' .. val .. '"]'
else
return "[" .. tostring(val) .. "]"
end
end
--值
WrapVal = function(val, level)
if type(val) == "table" then
return DumpObj(val, level)
elseif type(val) == "number" then
return val
elseif type(val) == "string" then
return '"' .. val .. '"'
else
return tostring(val)
end
end
DumpObj = function(obj, level)
if type(obj) ~= "table" then
return WrapVal(obj)
end
level = level + 1 --缩进量
local tokens = {}
tokens[#tokens + 1] = "{"
for k, v in pairs(obj) do
tokens[#tokens + 1] = GetIndent(level) .. WrapKey(k) .. " = " .. WrapVal(v, level) .. ","
end
tokens[#tokens + 1] = GetIndent(level - 1) .. "}"
return table.concat(tokens, "\n")
end
local value = DumpObj(obj, 0)
return value
end
Lua——解析打印数据
最新推荐文章于 2024-05-25 21:56:02 发布