在linux下安装lua
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install
cjson编译
- Lua CJSON 是 Lua 语言提供高性能的 JSON 解析器和编码器,其性能比纯 Lua 库要高 10 到 20 倍。Lua CJSON 完全支持 UTF-8 ,无需依赖其他非 Lua/LuaJIT 的相关包。
wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz
tar -zxf lua-cjson-2.1.0.tar.gz
cd lua-cjson-2.1.0
make all
cp cjson.so /usr/local/lib/lua/5.3
chmod 755 /usr/local/lib/lua/5.3/cjson.so
lua解析json字符串
案例一:
- ipairs 用于遍历数组的迭代器函数, pairs 用于遍历table的迭代器函数
> cjson = require "cjson"
> json = cjson.new()
> json_text = '{"foo":"bar"}'
> value = json.decode(json_text)
> for k,v in pairs(value) do print("json",k,v) end
json foo bar
> list = {foo="bar"}
> return json.encode(list)
{"foo":"bar"}
案例二:
{
"str":"hello world",
"configs":[
{
"user":"ubuntu",
"password":"123456",
"ip":"192.168.1.12"
},
{
"user":"ubuntu1",
"password":"45678",
"ip":"192.168.1.23"
}
]
}
#! /usr/local/bin/lua
function FileRead()
local file = io.open("test.json","r")
//*a表示从当前位置获取文件内容
local json = file:read("*a")
file:close()
return json
end
local cjson = require "cjson"
local file = FileRead()
local json = cjson.decode(file)
for i,w in ipairs(json.configs)
do
//两个点是字符串连接符
print("user:"..w.user)
print("password:"..w.password)
end
print("str:"..json.str)
案例三:
Lua 实现JSON解析器