JQ创建JSON键值对

4

我正在尝试使用这个非常简单的命令创建一个JSON文件:

jq -n --arg greeting world --arg mykey hello '{"hello":$greeting}'

我的问题是,当我将键替换为$mykey时,会出现以下错误:

# jq -n --arg greeting world --arg mykey hello {$mykey:$greeting}
jq: error: syntax error, unexpected ':' (Unix shell quoting issues?) at <top-level>, line 1:
{:}
jq: 1 compile error

我该如何创建一个包含两个参数/变量的简单JSON文件?

1个回答

11

jq手册所述,当以编程方式指定键名时,定义表达式必须用括号括起来:

$ jq -n --arg greeting world --arg mykey hello '{($mykey):$greeting}'
{
  "hello": "world"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接