首页 > 解决方案 > jq:错误:无法用字符串索引数组

问题描述

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

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

我得到下一个错误:

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

但是,如果我使用:

echo $rulebase | jq  '.rulebase[0].to'

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

标签: jsonjq

解决方案


如果要传入数值,请使用

—-argjson

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

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


推荐阅读