本篇介紹如何在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解壓并加入我們的項目中,如下圖:
<a href="http://www.himigame.com/wp-content/uploads/2013/04/QQ20130416-1.png"></a>
第三步:加載我們的cjson
打開項目的AppDelegate.cpp ,
(1)首先導入 #include “lua_extensions.h”
(2)在此類的applicationDidFinishLaunching函數中,在CCLuaStack 執行個體擷取到之後進行添加如下代碼:
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State* L = pStack->getLuaState();
luaopen_lua_extensions(L);
如下圖所示:
<a href="http://www.himigame.com/wp-content/uploads/2013/04/QQ20130416-2.png"></a>
OK,完成如上幾步,我們就可以在lua中使用cjson啦! 下面介紹通過lua cjson對資料進行json的轉換:
對資料進行encode與decode操作:
-------簡單資料-------
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
稍微複雜一些的資料:
----帶數組的複雜資料-----
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"
print(jsonData)
-- 列印結果: {"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
本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/1179366,如需轉載請自行聯系原作者