使用 jq 构造带有可变键的 JSON

Construct JSON with a variable key using jq

我正在尝试使用 jq 构建一个散列,其中键名来自一个变量。像这样:

jq --null-input --arg key foobar '{$key: "value"}'

然而,这不起作用,并出现以下错误:

error: syntax error, unexpected '$'
{$key: "value"} 1 compile error

使用括号计算 $key 早于:

 jq --null-input --arg key foobar '{($key): "value"}'

另请参阅:

您还可以在 jq 中使用 String interpolation,格式为 "\(..)"。在字符串内部,您可以在反斜杠后的括号内放置一个表达式。无论表达式 returns 将被插入到字符串中。

你可以在下面做。变量 key 的内容被插值序列扩展并作为字符串返回。

jq --null-input --arg key foobar '{ "\($key)": "value"}'