lua:table转json字符串
lua中table转json字符串
·
table转字符串
function table2JsonString(objTable)
local jsonString = ""
--jsonString = "{"
local t = type(objTable)
if t == "number" then
jsonString = jsonString .. objTable
elseif t == "boolean" then
jsonString = jsonString .. tostring(objTable)
elseif t == "string" then
jsonString = jsonString .. string.format("%q", objTable)
elseif t == "table" then
jsonString = jsonString .. "{"
local tempStr = ""
for k,v in pairs(objTable) do
tempStr = tempStr .. "\"" .. k .. "\":"
tempStr = tempStr .. table2JsonString(v)
tempStr = tempStr .. ","
end
if (string.len(tempStr)>0) then
jsonString = jsonString .. string.sub(tempStr,1,string.len(tempStr)-1)
end
jsonString = jsonString .. "}"
--local metatable = getmetatable(objTable)
--if metatable ~= nil and type(metatable.__index) == "table" then
-- for k,v in pairs(metatable.__index) do
-- jsonString = jsonString .. table2JsonString(v)
-- end
--end
elseif t == "nil" then
jsonString = jsonString .. "null"
else
end
--jsonString = jsonString .. "}"
return jsonString
end
案例
local tbObj = {}
tbObj["boolv"]=true
tbObj["intv"]=1
tbObj["floatv"]=2.3
tbObj["stringv"]="abc"
tbObj["objv"]={}
tbObj["objv"]["boolv"]=false
tbObj["objv"]["intv"]=2
tbObj["objv"]["floatv"]=5.67
tbObj["objv"]["stringv"]="substring"
print("="..table2JsonString(tbObj))
结果为
={"boolv":true,"objv":{"stringv":"substring","intv":2,"floatv":5.67,"boolv":false},"intv":1,"floatv":2.3,"stringv":"abc"}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)