本篇介紹如何在lua中對資料進行json的encode與decode,這裡himi采用cjson進行。首先簡單介紹下cjson:
lua cjson 是 lua 語言提供高性能的 json 解析器和編碼器,其性能比純 lua 庫要高 10 到 20 倍。lua cjson 完全支援 utf-8 ,無需依賴其他非 lua/luajit 的相關包。
下面我們來詳細介紹如何搭建cjson在lua的使用環境:
第一步:下載下傳cjson包 cjson.zip:
第二步:将下載下傳的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操作:
4
5
6
7
8
9
10
11
12
13
14
15
-------簡單資料-------
local tab ={}
tab["himi"] = "himigame.com"
--資料轉json
local cjson = require "cjson"
local jsondata = cjson.encode(tab)
print(jsondata)
-- 列印結果: {"himi":"himigame.com"}
--json轉資料
local data = cjson.decode(jsondata)
print(data.himi)
-- 列印結果: himigame.com
稍微複雜一些的資料:
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]=25
local _arrayflagkey={}
_arrayflagkey["array"]=_jsonarray
local tab = {}
tab["himi"]="himigame.com"
tab["testarray"]=_arrayflagkey
tab["age"]="23"
-- 列印結果: {"age":"23","testarray":{"array":[8,9,11,14,25]},"himi":"himigame.com"}
local a = data.age
local b = data.testarray.array[2]
local c = data.himi
print("a:"..a.." b:"..b.." c:"..c)
-- 列印結果: a:23 b:9 c:himigame.com
:himi: ok,本篇結束,大家有任何疑問可以及時交流,也可以到himi的lua交流群:250916715