Lua利用cjson讀寫json示例分享
我這里采用的是Lua CJson庫(kù),是一個(gè)高性能的JSON解析器和編碼器,其性能比純Lua庫(kù)要高10~20倍。并且Lua Json完全支持UTF-8,無(wú)需以來(lái)其他非Lua/LuaJit相關(guān)包。
環(huán)境安裝
這里就不詳細(xì)寫了,隨便問(wèn)下谷歌就有一大堆答案。
示例代碼
解析JSON
local cjson = require "cjson"
local sampleJson = [[{"age":"23","testArray":{"array":[8,9,11,14,25]},"Himi":"himigame.com"}]];
--解析json字符串
local data = cjson.decode(sampleJson);
--打印json字符串中的age字段
print(data["age"]);
--打印數(shù)組中的第一個(gè)值(lua默認(rèn)是從0開始計(jì)數(shù))
print(data["testArray"]["array"][1]);
編碼JSON
local cjson = require "cjson"
local retTable = {}; --最終產(chǎn)生json的表
--順序數(shù)值
local intDatas = {};
intDatas[1] = 100;
intDatas[2] = "100";
--數(shù)組
local aryDatas = {};
aryDatas[1] = {};
aryDatas[1]["鍵11"] = "值11";
aryDatas[1]["鍵12"] = "值12";
aryDatas[2] = {};
aryDatas[2]["鍵21"] = "值21";
aryDatas[2]["鍵22"] = "值22";
--對(duì)Table賦值
retTable["鍵1"] = "值1";
retTable[2] = 123;
retTable["int_datas"] = intDatas;
retTable["aryDatas"] = aryDatas;
--將表數(shù)據(jù)編碼成json字符串
local jsonStr = cjson.encode(retTable);
print(jsonStr);
--結(jié)果是:{"int_datas":[100,"100"],"2":123,"鍵1":"值1","aryDatas":[{"鍵12":"值12","鍵11":"值11"},{"鍵21":"值21","鍵22":"值22"}]}
寫在最后
以上只是對(duì)于cjson庫(kù)的簡(jiǎn)單應(yīng)用示例,如有任何問(wèn)題請(qǐng)及時(shí)給我留言。
相關(guān)文章
Ruby類實(shí)例變量、類實(shí)例方法和類變量、類方法的區(qū)別
這篇文章主要介紹了Ruby類實(shí)例變量、類實(shí)例方法和類變量、類方法的區(qū)別,本文探討一下他們的定義和基本的使用場(chǎng)景,需要的朋友可以參考下2015-04-04Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例
這篇文章主要介紹了Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例,本文給出了加法、減法、乘法、除法、相反數(shù)、取模等內(nèi)容,需要的朋友可以參考下2014-09-09Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡(jiǎn)例
今天小編就為大家分享一篇關(guān)于Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡(jiǎn)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10C語(yǔ)言中調(diào)用Lua函數(shù)實(shí)例
這篇文章主要介紹了C語(yǔ)言中調(diào)用Lua函數(shù)實(shí)例,本文講解了調(diào)用一個(gè)Lua函數(shù)的步驟和C語(yǔ)言調(diào)用Lua函數(shù)實(shí)例,需要的朋友可以參考下2015-04-04Lua教程(七):數(shù)據(jù)結(jié)構(gòu)詳解
這篇文章主要介紹了Lua教程(七):數(shù)據(jù)結(jié)構(gòu)詳解,本文講解了數(shù)組、二維數(shù)組、鏈表、隊(duì)列與雙向隊(duì)列、 集合和包(Bag)、StringBuilder等內(nèi)容,需要的朋友可以參考下2015-04-04使用nginx+lua實(shí)現(xiàn)信息訪問(wèn)量統(tǒng)計(jì)
這篇文章主要介紹了使用nginx+lua實(shí)現(xiàn)信息訪問(wèn)量統(tǒng)計(jì),功能很簡(jiǎn)單,代碼也很簡(jiǎn)潔,有需要的小伙伴可以參考下,然后自由擴(kuò)展。2015-03-03Lua中讓回調(diào)函數(shù)支持回調(diào)對(duì)象方法的解決方法
這篇文章主要介紹了Lua中讓回調(diào)支持對(duì)象方法,一般情況下,Lua中只支持回調(diào)一個(gè)函數(shù),本文方法實(shí)現(xiàn)可以回調(diào)一個(gè)對(duì)象的方法,需要的朋友可以參考下2014-12-12Lua中實(shí)現(xiàn)php的strpos()以及strrpos()函數(shù)
這篇文章主要介紹了在Lua中實(shí)現(xiàn)php的strpos()以及strrpos()函數(shù)的方法,需要的朋友可以參考下2014-11-11