简单的写了一个打印Lua Table的函数

来源:互联网 发布:js让某个div隐藏 编辑:程序博客网 时间:2024/04/30 00:31

简单的写了一个将Lua Table 打印成Json的格式,当然这个函数还是有点bug的,就是不能区分
同时存在数组和key-vlaue,如:

local test = {    [1] = 'abc',    [2] = 'def',    [3] = 'aaa',    name = 'name',    hello = 'hello',}

会被当做数组处理,由于项目中没有导入Json库,不能使用Json.encode(),所以自己随便了一个,
基本上满足需求,后面也就没有管了,如果有人阅读到此篇文章,可以自己去写,简单的!

function table_encode(t)    local str = ""    if type(t) ~= "table" then return "" end    if #t > 0 then        str = str .."["        for index, e in ipairs(t) do            if type(e) ~= "table" then                str = str..tostring(e)                if index ~= #t then                    str = str .. ","                end            else                str = str .. table_encode(e)                if index ~= #t then                    str = str .. ","                end            end        end        str = str .."]"    else        local keys = {}        for k, v in pairs(t) do            table.insert(keys, k)        end        str = str .."{"        for index, k in ipairs(keys) do            local v = t[k]            if type(v) ~= "table" then                str = str .. "\""..tostring(k).."\""..":"..tostring(v)                if index~=#keys then                    str = str .. ","                end            else                str = str .. "\""..tostring(k).."\""..":" .. table_encode(v)                if index~=#keys then                    str = str .. ","                end            end        end        str = str .."}"    end    return strend

测试

local myt = {    arr = {1,2,3,4,{5,6,7},{a="a", b ="b",c="c"}},    name = "hao",    yes = "aaa",    [2] = "22222",    [3] = "33333"}print(table_encode(myt))
原创粉丝点击