使用Lua CJSON库进行encode与decode操作完成对Json数据转化
本篇介绍如何在lua中对数据进行json的encode与decode,这里Himi采用cjson进行。首先简单介绍下cjson:
Lua CJSON 是 Lua 语言提供高性能的 JSON 解析器和编码器,其性能比纯 Lua 库要高 10 到 20 倍。Lua CJSON 完全支持 UTF-8 ,无需依赖其他非 Lua/LuaJIT 的相关包。
文档链接: http://www.kyne.com.au/~mark/software/lua-cjson-manual.html
下面我们来详细介绍如何搭建cjson在lua的使用环境:
第一步:下载cjson包 cjson.zip:
cjson.zip: http://vdisk.weibo.com/s/xQ-P6
第二步:将下载的cjson.zip解压并加入我们的项目中,如下图:
第三步:加载我们的cjson
打开项目的AppDelegate.cpp ,
(1)首先导入 #include “lua_extensions.h”
(2)在此类的applicationDidFinishLaunching函数中,在CCLuaStack 实例获取到之后进行添加如下代码:
|
1
2
3
|
CCLuaStack *pStack = pEngine->getLuaStack(); lua_State* L = pStack->getLuaState(); luaopen_lua_extensions(L); |
如下图所示:
OK,完成如上几步,我们就可以在lua中使用cjson啦! 下面介绍通过lua cjson对数据进行json的转换:
对数据进行encode与decode操作:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-------简单数据-------local tab ={}tab["Himi"] = "himigame.com"--数据转jsonlocal cjson = require "cjson"local jsonData = cjson.encode(tab)print(jsonData) -- 打印结果: {"Himi":"himigame.com"}--json转数据local data = cjson.decode(jsonData)print(data.Himi) -- 打印结果: himigame.com |
稍微复杂一些的数据:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
----带数组的复杂数据-----local _jsonArray={}_jsonArray[1]=8_jsonArray[2]=9_jsonArray[3]=11_jsonArray[4]=14_jsonArray[5]=25local _arrayFlagKey={}_arrayFlagKey["array"]=_jsonArraylocal tab = {}tab["Himi"]="himigame.com"tab["testArray"]=_arrayFlagKeytab["age"]="23"--数据转jsonlocal cjson = require "cjson"local jsonData = cjson.encode(tab)print(jsonData)-- 打印结果: {"age":"23","testArray":{"array":[8,9,11,14,25]},"Himi":"himigame.com"}--json转数据local data = cjson.decode(jsonData)local a = data.agelocal b = data.testArray.array[2]local c = data.Himiprint("a:"..a.." b:"..b.." c:"..c)-- 打印结果: a:23 b:9 c:himigame.com |
posted on 2018-04-16 10:37 echo111333 阅读(12092) 评论(0) 收藏 举报


浙公网安备 33010602011771号