设为首页 收藏本站
查看: 761|回复: 0

[经验分享] mac 下安装 lua5.3 + cjson

[复制链接]

尚未签到

发表于 2017-7-7 12:12:02 | 显示全部楼层 |阅读模式
  1.lua 5.3的安装
  直接去官网下载
  http://www.lua.org/ftp/lua-5.3.3.tar.gz

make macosx
sudo make install
  2.CSJON
  编译lua-cjson库,用的是云风fork后修改的支持lua53 integer64的库,传送门:lua-cjson库
  https://github.com/cloudwu/lua-cjson
  版本:Lua CJSON 2.1
  Makefile的改动:
  LUA_VERSION =       5.3  #注意你的lua版本,可以用lua -v看 取小数点后一位 我的版本是
Lua 5.3.1  Copyright (C) 1994-2013 Lua.org, PUC-Rio
PREFIX =            /usr/local  前缀路径,安装lua的时候用 make install 安装;可以cd /usr/local到该路径查看是否存在lua的相关库
  原:CJSON_LDFLAGS =     -shared
  改:CJSON_LDFLAGS =     -bundle -undefined dynamic_lookup
  这里就是OSX和Unix的区别,bundle是Mac使用的文件格式,如果不使用这些选项,可能引起“multiple lua vms detected”错误
  添加:
  
CJSON_CFLAGS +=     -DUSE_INTERNAL_FPCONV
  CJSON_CFLAGS +=     -DIEEE_BIG_ENDIAN
  CJSON_CFLAGS +=     -pthread -DMULTIPLE_THREADS

示例代码
  解析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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-391224-1-1.html 上篇帖子: Mac下配置node.js环境(Mac 10.12) 下篇帖子: Mac下安装配置gradle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表