JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
具体格式:
1、对象是一个无序的“‘名称/值’对”集合。
(1)一个对象以“{”(左括号)开始,“}”(右括号)结束。
(2)每个“名称”后跟一个“:”(冒号);
(3)“‘名称/值’ 对”之间使用“,”(逗号)分隔。
例子:
{
"姓名":"大憨",
"年龄":24
}
2、数组是值(value)的有序集合。
(1)一个数组以“[”(左中括号)开始,“]”(右中括号)结束。
(2)值之间使用“,”(逗号)分隔。
例子:
{
"学生":
[
{"姓名":"小明","年龄":23},
{"姓名":"大憨","年龄":24}
]
}
在线检测json格式:
http://www.bejson.com/
测试代码:
require("json")
local str = '{"ret":"2"}'
local r = json.decode(str)
for k, v in pairs(r) do
CCLuaLog("k = "..tostring(k))
CCLuaLog("v = "..tostring(v))
end
local xxx = {key = "zky"}
local str = json.encode(xxx)
CCLuaLog(str)
local str = '{"name":"中国","province":[{"name":"黑龙江","cities":{"city":["哈尔滨","大庆"]}}]}'
-- local str = '{"name":"中国","province":[{"name":"黑龙江","cities":{"city":["哈尔滨","大庆"]}},{"name":"广东","cities":{"city":["广州","深圳","珠海"]}},{"name":"台湾","cities":{"city":["台北","高雄"]}},{"name":"新疆","cities":{"city":["乌鲁木齐"]}}]}'
local r = json.decode(str)
local function log(r)
for k, v in pairs(r) do
CCLuaLog("k = "..tostring(k))
CCLuaLog("v = "..tostring(v))
if type(v) == "table" then
log(v)
end
end
end
log(r)
local str = json.encode(r)
CCLuaLog(str)
测试结果:
json官网:
http://www.json.org/