天天看點

【COCOS2DX-LUA 腳本開發之十】使用Lua CJSON庫進行encode與decode操作

本篇介紹如何在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-&gt;getLuaStack(); 

    lua_State* L = pStack-&gt;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,如需轉載請自行聯系原作者