json - jq:错误:无法用字符串索引数组

标签 json jq

我正在尝试为检查点管理服务器 api 编写 bash 脚本,但遇到了一些问题。
我想获取 json 字典中的值,为此我必须使用变量。我正在输入这个命令:

echo $rulebase | jq --arg n "$0" '.rulebase[$n].to'

我得到下一个错误:

jq: error: Cannot index array with string



但是,如果我使用:
echo $rulebase | jq  '.rulebase[0].to'

我得到了我需要的结果。我不知道如何在变量为数字时使用变量,有人可以帮助我吗?

最佳答案

如果要传入数值,请使用

—-argjson

而不是 —-arg , 用于 JSON 字符串值。

如果您的 jq 不支持 —argjson,那么现在可能是升级的绝佳时机;否则,您可以使用 tonumber .

关于json - jq:错误:无法用字符串索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53261746/

相关文章:

json - 如何使用 jq 获取 json 流的嵌套键

python - 如何在 Python 中读取简单的 Json 结果(来自 Google 计算器)?

javascript - jQuery getJSON 请求返回空响应 - 同一域

javascript - 从 Node JS 服务器读取响应

json - 无法将 JSON 数组反序列化为 foo 类型

json - 在 RESTful Web 服务中,响应 DTO 是否应该包含它们的子 DTO?

json - 从由 jq 中的属性键入的对象流创建对象

json - 有没有办法用ffmpeg按章节批量拆分文件,然后在windows中用mkvmerge重新组装?

jq - 为什么这个 jq 管道不需要点?

regex - 在 JQ 上应用正则表达式