arrays - Lua中动态获取Json键值
问题描述
我有一个输入 Json,我需要为其获取特定键的值。键名将是动态的,并将在输入中传递,如下所示 -
输入 Json -
{
"error": "Bad Request"
"source": [
{
"code": "400",
"message": "Missing values"
}
]
}
在这里,我需要动态获取代码和消息的值。如果我像下面这样直接给出路径,我就可以读取这些值 -
json_body["source"][1].code
但是这里的json路径将由用户在输入中作为字符串传递,如下所示 -
本地路径=“源[1].code”
如何使用此路径变量值并获取此键的 Json 值。我在下面尝试过,但它不起作用 -
json_body[路径]
下面是我正在使用的示例 Lua 代码 -
local cjson = require("cjson.safe").new()
local function read_json_body(body)
if body then
return cjson.decode(body)
end
end
local json_body = read_json_body(buffered_data)
local message_path = "source[1].code"
local value = json_body[message_path]
我能够获取数组之外的字段的值,如下所示 -
local message_path = "error"
local value = json_body[message_path]
解决方案
推荐阅读
- ios - ios swift中的形状
- powershell - PowerShell 脚本:注册表项在创建时不保存
- pycharm - 如何查看 Pycharm 的运行命令,以便我可以将其复制到 Jenkins
- angular - 错误:所需的请求部分“excelFile”不存在。尝试将 excel 文件从 Angular 应用程序上传到 Spring Boot Server 时
- go - 在 Go 中设置基本 Kafka 消费者和生产者时出现 security.protocol 错误?
- mongodb - Mongo聚合:从键值对象返回不同值的计数
- python - 在 Spyder 中启动内核时出错
- mysql - MySQL 5.7 JSON_REMOVE 在一个查询中从数组中删除多个值
- html - Angular 11:我无法显示 pdf
- python - 删除重复的项目并在python中添加类似的项目