問題分析:
lua腳本寫很容易,但是運行可能處處碰壁,尤其是引入的其他的類庫的時候,通過require來加載其他的API,如果事先沒有安裝的話,就會報出問題。
lua-cjson 是一個簡單小巧的開源動態庫,短小精悍。
問題解決
網上找了許多lua-cjson的安裝方案,錯誤的就不展示了,分享下我安裝成功的示例。
一、下載lua-cjson-2.1.0.tar和LuaJIT-2.0.5 提取碼: dihd
lua(www.lua.org)其實就是爲了嵌入其它應用程序而開發的一個腳本語言,luajit(www.luajit.org)是lua的一個Just-In-Time也就是運行時編譯器,也可以說是lua的一個高效版。
二、開始安裝luajit
開始執行 make && make install,看到最後一行 就安裝成功了。
三、開始安裝lua-cjson
修改 /usr/local/lua-cjson-2.1.0/Makefile
文件
將 LUA_INCLUDE_DIR = $(PREFIX)/include
修改爲:LUA_INCLUDE_DIR = /usr/local/include/luajit-2.0(這個目錄是安裝luajit的時候安裝的路徑)
下面開始執行 make && make install,這樣就是安裝成功了。下面就開始測試吧
準備一段lua腳本:
local arr = '[{"A":1,"G":2},{"J":3,"KK":100}]'
local arrJson = cjson.decode(arr)
print(type(arrJson))
print(arrJson[2].KK)
local arr = '{"extend2":"{}","interfaceUrl":"","requestType":"S07","resultCode":"200","returnMess":"orderId=ReservationId;payAmount=PayAmount;payTime=PayTime;paymentLink=PaySource;policyUrl=PolicyUrl;holderInf
oBo=com.suning.ios.entity.bo.telemarket.underwrite.GhbHolderInfoBo[holderName=HolderName,holderCardType=HolderCardType,holderCardNo=HolderCardNo];insuredInfoBo=com.suning.ios.entity.bo.telemarket.underwrite.Gh
bInsuredInfoBo[insuredName=InsuredName,insuredCardType=InsuredCardType,insuredCardNo=InsuredCardNo,insuredRelation=InsuredRelation];carInfo=com.suning.ios.entity.bo.carInsurance.CarInfoBo[ownerName=OwnerName,o
wnerCardType=OwnerCardType,ownerCardNo=OwnerCardNo,vehiclelicenceNo=VehicleLicenceNo,vehicleFrameNo=VehicleFrameNo,vehicleEngineNo=VehicleEngineNo];issuedTime=IssuedTime;qrCode=SourceCode;productInfos=com.suni
ng.ios.entity.bo.carInsurance.ProductInfo[baseRiderType=InsureType,policyNo=PolicyNo,insuBeginDate=InsuBeginDate,insuEndDate=InsuEndDate,insAmount=InsAmount,productMoney=Premium,vehicleTax=VehicleTax]","suppli
erCode":"S167","supplierMessTemp":"保險公司回調給sn信息","supplierMessType":"2"}'
local arrJson = cjson.decode(arr)
print(arrJson.requestType)
local arr = '[{"cateCode":"R8004002","channelCode":"SC1002","createTime":"2018-06-0214:09:51.0","insContent":[{"productPlanid":"","contentList":[{"insContent":"1","insPrice":"1","insDesc":"1"}],"keyword":"無限
次賠付|最高賠付百萬","lastEditTime":"2019-12-1211:25:28.0","productCode":"P10281","productName":"賬戶安全險手機端","publishTitle":"賬戶安全險","publishType":1,"rcmdSubtitle":"無限次賠付","rcmdTitle":"百萬賬戶
安全險","saleStartTime":"2018-06-0214:09:00.0","showPrice":"1.99元","sort":0,"thum":"https://uimgpre.cnsuning.com/uimg/eppagtms/eppagtms/149545302822833108.jpg"}]}]'
local arrJson = cjson.decode(arr)
print(type(arrJson))
print(arrJson[1].insContent[1].contentList[1].insContent)
通過執行 $>luajit testArray.lua
到此:安裝以及測試結束,下一章節測試redis 中執行lua腳本去解析json。