您好,我希望能够访问以下JSON数组中给定元素:
$ echo '[ { "CT" : "OS1" , "VERSION" : "3" } , { "CT" : "OS2" , "VERSION" : "3" } ]' | jq '.[1]'
{
"CT": "OS2",
"VERSION": "3"
}
然而,我希望在将来使用一个变量(从环境中获取),以替换上述命令中的索引“1”,但这会产生错误。
echo '[ { "CT" : "OS1" , "VERSION" : "3" } , { "CT" : "OS2" , "VERSION" : "3" } ]' | jq --arg index 1 '.[$index]'
jq: error (at <stdin>:1): Cannot index array with string "1"
看起来无法将这个1解析为数字值,有人能帮我吗?
jq --arg index 1 '.[$index]'
。我花了几个小时尝试使用arg来使其工作,而你的答案为我解决了这个问题。 - Dude0001--arg
将变量设置为字符串,而--argjson
则将变量设置为 JSON 值,并在此情况下作为可用作索引数组的数字。 - oliv