如何使用JQ变量作为对象键?

时间:2018-06-27 07:23:25

标签: variables syntax key jq

当我引用密钥时,JQ不会对其进行评估:

$ echo value | jq -sR --arg key a '{"$key": .}'
{
  "$key": "value\n"
}

当我不引用它时,JQ报告语法错误:

$ echo value | jq -sR --arg key a '{$key: .}'
jq: error: syntax error, unexpected ':', expecting '}' (Unix shell quoting issues?) at <top-level>, line 1:
{$key: .}     
jq: 1 compile error

正确的语法是什么?

1 个答案:

答案 0 :(得分:2)

使用变量指定键名时,必须将其括在括号中:

{($key): .}

实际上,每当用冒号指定键/值对时,除非键是JSON字符串常量,否则必须将其括在括号中。