使用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解壓並加入我們的項目中,如下圖:

QQ20130416-1

第三步:加載我們的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);

 

如下圖所示:

QQ20130416-2

 

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"
--數據轉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

 

稍微復雜一些的數據:

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]=25
 
local _arrayFlagKey={}
_arrayFlagKey["array"]=_jsonArray
 
local tab = {}
tab["Himi"]="himigame.com"
tab["testArray"]=_arrayFlagKey
tab["age"]="23"
 
--數據轉json
local 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.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM