将lua数据表格 转换成json格式,xml格式
首先转换成json,不废话直接代码:
local temp = require(tableName)local function table2json(t)--将表格转换为jsonlocal function serialize(tbl)local tmp = {}for k, v in pairs(tbl) dolocal k_type = type(k)local v_type = type(v)local key = (k_type == "string" and "\"" .. k .. "\":") or (k_type == "number" and "")local value = (v_type == "table" and serialize(v)) or (v_type == "boolean" and tostring(v)) or (v_type == "string" and "\"" .. v .. "\"") or (v_type == "number" and v)tmp[#tmp + 1] = key and value and tostring(key) .. tostring(value) or nilendif table.maxn(tbl) == 0 thenreturn "{" .. table.concat(tmp, ",") .. "}"elsereturn "[" .. table.concat(tmp, ",") .. "]"endendassert(type(t) == "table")return serialize(t)endlocal function appendFile(fileName, content)local f = assert(io.open(fileName, 'w'))f:write(content)f:close()endappendFile('itemtable.json', table2json(temp))--temp就是要转换的数据
接下来是转换成xml:
--this is luatoxml
local M = {}
local indentation = ""function M.ToXmlString(value)value = string.gsub(value, "&", "&"); -- '&' -> "&"value = string.gsub(value, "<", "<"); -- '<' -> "<"value = string.gsub(value, ">", ">"); -- '>' -> ">"value = string.gsub(value, "\"", """); -- '"' -> """return value;
endfunction M.toxml(value)local xml = ""local t = type(value)if t == "string" thenxml = xml .. indentation .. "<" .. value .. "/>\n"elseif t == "table" thenfor name, data in pairs(value) doif type(name) == "number" and type(data) == "table" thenxml = xml .. "<entry>"xml = xml .. M.toxml(data)xml = xml .. "</entry>"elseif type(data) == "table" thenlocal arr = truefor kk, vv in pairs(data) doif type(kk) ~= "number" thenarr = falsebreakendendlocal sssss = ""if arr thenfor g = 1, #data doif type(data[g]) == "table" thenfor gg = 1, #data[g] dosssss = sssss .. data[g][gg] .. ","endelsesssss = sssss .. data[g] .. ","endendelsefor kk, vv in pairs(data) dosssss = sssss .. vv .. ","endendxml = xml .. indentation .. "<" .. name .. ">"xml = xml .. sssssxml = xml .. indentation .. "</" .. name .. ">\n"elsexml = xml .. indentation .. "<" .. nameif type(data) == "table" thenlocal children = {}local number_strings = {}for k, v in pairs(data) dolocal vtype = type(v)local ktype = type(k)if vtype == "table" thenchildren[k] = velseif ktype == "string" thenxml = xml .. " " .. k .. '="' .. tostring(v) .. '"'elseif ktype == "number" and vtype == "string" thentable.insert(number_strings, v)endendif next(children) ~= nil or #number_strings > 1 thenxml = xml .. ">\n"indentation = indentation .. "\t"xml = xml .. M.toxml(children)xml = xml .. M.toxml(number_strings)indentation = indentation:sub(1, #indentation - 1)xml = xml .. indentation .. "</" .. name .. ">\n"elseif #number_strings == 1 thenxml = xml .. ">" .. number_strings[1] .. "</" .. name .. ">\n"elsexml = xml .. "/>\n"endendelseif string.find(tostring(data), "<") ~= nil thenxml = xml .. ">" .. M:ToXmlString(data) .. "</" .. name .. ">\n"elsexml = xml .. ">" .. tostring(data) .. "</" .. name .. ">\n"endendendendreturn xml
endreturn M
local luatoxml = require "luatoxml"local tableName = "表名"local temp = require(tableName)f = assert(io.open("luaToxml/" .. tableName .. '.xml', 'w'))--转换后的xml名字,存放路径f:write('<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>')f:write('<LocalDatas xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">')f:write(luatoxml.toxml(temp))f:write("</LocalDatas>")f:close()
将lua数据表格 转换成json格式,xml格式相关推荐
- EXCEL表格转换成json数据工具
请先下载phpexcel插件后在使用如下代码运行 phpexcel插件下载地址:http://www.chtml.cn/topic/show/40 实例代码: <!DOCTYPE HTML PU ...
- node-js——将excel表格转换成json文件
文章目录 将excel表格转换成json文件 步骤 一.引用nodejs的xlsx模块,读取表格的数据 二.引入fs模块,创建文件并写入 三.写一个bat脚本,双击自动执行nodejs文件 示例文件下 ...
- badatatable转成json_数据表转换成json(DatatableToJson)
#region 转换Table为JSON数据 /// /// 转换Table为JSON数据 /// /// /// public static string TableToJson(DataTable ...
- 将Ajax请求返回的json数据,转换成json对象
var json = eval("("+data+")");//将json类型字符串转换为json对象 注:https://www.cnblogs.com/yu ...
- 从数据库查询出来的数据集合转换成 json 类型
2019独角兽企业重金招聘Python工程师标准>>> java ---------------------------------------------------------- ...
- PJBlog的文章转换成BlogEngine的xml格式文章
我原来的博客系统一直都是用pjblog的,现在想趁热闹,改用BlogEngine. 所以就搞了这么一个小东西,可以把原来pjblog的文章转成BlogEngine的文章. 程序好简单的,也不好意思再作 ...
- 普通数组如何转换成json数据格式
我们都知道json有很多种格式,而开发过程中经常遇到格式转换的问题,特别是接口调用的时候,如何将普通数组转成我们需要的json格式呢,下面我提供了一种方法,也是一种思路,希望对大家有所帮助!! (大前 ...
- 盘点机数据怎么转换成电脑盘点系统的数据
若是该物联宇手持终端是针动该POS系统配备的,先把盘点机生成的盘点数据文件复制到POS系统电脑上,然后在POS系统盘点界面应该有类似"数据导入"的功能,选择该数据文件导入. 否则需 ...
- Jquery 将后台返回的字符串转换成Json格式的数据
//code by:博客园-曹永思 第一步:将DataTable转换成 Json格式的数据 方法 一 View Code /// <summary>/// DataTable转成Json格 ...
最新文章
- Gson:我爸是 Google
- 渝北统景碑口规划开发_渝北将又添“大水缸”御临河上将形成2.9平方公里人工湖面...
- xp 不能上传邮件附件的解决办法
- PHP服务器时间差8小时解决方案
- Docker logs 查看实时日志(日志最后的N行、某刻后日志)
- ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件
- kubernetes视频教程笔记 (33)-什么是 Helm
- DroidCam通过数据线调用手机摄像头的方法一
- 常州市行政地图矢量高清pdf区划彩色大图cdr或ai2020年
- xign跨平台游戏引擎演示
- ChatGPT突遭大面积封号!网友应急出解封教程
- MySQL --alter table的使用
- Loadrunner11.00破解方法
- import上一级目录的模块(Python)
- Linux中/proc/pid/status信息含义
- 两个小工具反编译微信(PC)小程序源码
- arp miss攻击_S交换机有ARP Miss告警,怎么办?
- 正则表达式测试器eRegex (for Mac Win)
- 大数据营销系统真的靠谱吗?
- Games 图形学 L11