使用 JQ 替换 JSON 模板中的变量

And*_*yko 3 templates json jq

我想用值“Hello Jack”填充 json 模板,但“Hello”部分应保留在模板内,有什么方法可以做到这一点,我尝试了下面的代码,但它给了我错误:

jq -n --arg person "Jack" '{my_key: "Hello "$person}'
Run Code Online (Sandbox Code Playgroud)
jq: error: syntax error, unexpected '$', expecting '}' (Unix shell quoting issues?) at <top-level>, line 1:
Run Code Online (Sandbox Code Playgroud)

ogu*_*ail 7

使用字符串插值语法,如下所示:

jq -n --arg person Jack '{my_key: "Hello \($person)"}'
Run Code Online (Sandbox Code Playgroud)

要从文件加载模板,请使用-f开关:

$ cat template.json
{
  "my_key": "Hello \($person)"
}
$ jq -n --arg person Jack -f template.json
{
  "my_key": "Hello Jack"
}
Run Code Online (Sandbox Code Playgroud)