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"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值