错误 jq:传递给 --argjson 的 JSON 文本无效
Error jq: invalid JSON text passed to --argjson
考虑
$ keys='[["key1","a"],["key2","b"]]' jq -c --argjson keys "$keys" '.[] | [getpath($keys[])]' <<<$'[{"key1":{"a":1},"key2":{"b":2}}] [{"key1":{"a":3},"key2":{"b":4}}]'
我期待输出
[1,2]
[3,4]
但是我在定义argjson
的时候好像做错了什么。我得到错误:
jq: invalid JSON text passed to --argjson
我做错了什么?谢谢!
您要么缺少 semi-colon(或等效项),要么误解了 shell 个变量。
- 带分号:
keys='[["key1","a"],["key2","b"]]' ; jq -c -n --argjson keys "$keys" '$keys'
- 使用 shell 个变量:
keys='[["key1","a"],["key2","b"]]' jq -c -n 'env.keys | fromjson'
考虑
$ keys='[["key1","a"],["key2","b"]]' jq -c --argjson keys "$keys" '.[] | [getpath($keys[])]' <<<$'[{"key1":{"a":1},"key2":{"b":2}}] [{"key1":{"a":3},"key2":{"b":4}}]'
我期待输出
[1,2]
[3,4]
但是我在定义argjson
的时候好像做错了什么。我得到错误:
jq: invalid JSON text passed to --argjson
我做错了什么?谢谢!
您要么缺少 semi-colon(或等效项),要么误解了 shell 个变量。
- 带分号:
keys='[["key1","a"],["key2","b"]]' ; jq -c -n --argjson keys "$keys" '$keys'
- 使用 shell 个变量:
keys='[["key1","a"],["key2","b"]]' jq -c -n 'env.keys | fromjson'