这里采用的是Lua CJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高10~20倍。并且Lua Json完全支持UTF-8,无需以来其他非Lua/LuaJit相关包。

环境安装

这里就不详细写了,随便问下谷歌就有一大堆答案。

示例代码

解析JSON

local cjson = require "cjson"
local sampleJson = [[{"age":"23","testArray":{"array":[8,9,11,14,25]},"Himi":"himigame.com"}]];
--解析json字符串
local data = cjson.decode(sampleJson);
--打印json字符串中的age字段
print(data["age"]);
--打印数组中的第一个值(lua默认是从0开始计数)
print(data["testArray"]["array"][1]);

编码JSON

local cjson = require "cjson"
local retTable = {}; --最终产生json的表
--顺序数值
local intDatas = {};
intDatas[1] = 100;
intDatas[2] = "100";
--数组
local aryDatas = {};
aryDatas[1] = {};
aryDatas[1]["键11"] = "值11";
aryDatas[1]["键12"] = "值12";
aryDatas[2] = {};
aryDatas[2]["键21"] = "值21";
aryDatas[2]["键22"] = "值22";
--对Table赋值
retTable["键1"] = "值1";
retTable[2] = 123;
retTable["int_datas"] = intDatas;
retTable["aryDatas"] = aryDatas;
--将表数据编码成json字符串
local jsonStr = cjson.encode(retTable);
print(jsonStr);
--结果是:{"int_datas":[100,"100"],"2":123,"键1":"值1","aryDatas":[{"键12":"值12","键11":"值11"},{"键21":"值21","键22":"值22"}]}

最新文章

  1. 使用DeviceOne实现微信小程序功能
  2. Android 自定义事件监听器
  3. FusionCharts简单教程(四)-----基本数字格式
  4. java中的数据结构 --- 集合
  5. CMMI整体理解
  6. java运用Comparator为对象排序
  7. Js/Ajax中发送HttpPost请求调用WebService
  8. StoreKit framework
  9. Android异步下载网络图片
  10. 许士彦:创业不走寻常路 APP最好时间已过
  11. Run QTP script wiht host in HPQC
  12. [Android笔记1]Activity+Layout+Button
  13. java上传图片剪切工具类
  14. 2018年如何快速学Java
  15. linux nginx 基本用法
  16. three.js 相机camera位置属性设置详解
  17. 前端分页插件bootstrapPaginator的使用
  18. Python全栈开发-Day2-Python基础2
  19. Java 动态图片压缩
  20. MyBatis sql语句使用总结

热门文章

  1. javaweb学习总结十三(dom4j方式对XML文档进行解析以及Xpath的使用)
  2. 实现TableLayout布局下循环取出TableRow控件中的文字内容到list集合
  3. css禁止双击dom节点被选中user-select:none
  4. 软件设计师考试计算机系统知识——CPU
  5. 基于asp.net的ajax分页
  6. C# IO操作(五)文件的递归加载
  7. iOS - 视图与手势(UIview & UIGestureRecognizer)
  8. In-App-Purcharse 官方原文摘要笔记
  9. (转)Linux下tomcat JVM内存设置步骤
  10. web项目嵌入Jetty运行的两种方式(Jetty插件和自制Jetty服务器)