我需要发出get请求并从json数组中检索数据,但我不知道如何获取特定的数组索引并打印其值。似乎没有任何关于它的在线信息。
local curl = require("lcurl")
c = curl.easy{
url = 'http://example.com/api/?key=1234',
httpheader = {
"Content-Type: application/json";
};
writefunction = io.stderr
}
c:perform()
c:close()
返回
[
{
"id": "1",
"name": "admin"
}
]
但是如何让它只打印name
?
答案 0 :(得分:1)
您可以使用某些JSON库,例如this one。
local json = require'json'
local function callback(path, json_type, value, pos, pos_last)
local elem_path = table.concat(path, '/') -- element's path
--print(elem_path, json_type, value, pos, pos_last)
if elem_path == "1/name" then -- if current element corresponds to JSON[1].name
print(value)
end
end
local JSON_string = [[
[
{
"id": "1",
"name": "admin"
}
]
]]
json.traverse(JSON_string, callback)
输出:
admin
另一个解决方案(更简单,完全解码JSON):
local json = require'json'
local JSON_string = [[
[
{
"id": "1",
"name": "admin"
}
]
]]
print(json.decode(JSON_string)[1].name)