使用 jq 从变量创建嵌套 json 文件

Ale*_*lex 1 linux shell shell-script json jq

我有一个脚本,我在其中存储变量并使用它尝试创建 json 输出到文件。这是我的 json 构建格式

#!/bin/bash
JSON_STRING=$(jq -n \
                  --arg configId "$configid" \
                  --arg objectname "tempfile" \
                  --arg artifacts "[{ "name" : "oer", "version" : "$ot" }]" \
                  --arg test "2021" \
                   '$ARGS.named') > output.json
                  
Run Code Online (Sandbox Code Playgroud)

所需的 json o/p (output.json) -

{ "configId": "c8f", "objectname": "tempfile", "artifacts": [{ "name" : "oer", "version" : "1.01" }], "test" : "2021"}
Run Code Online (Sandbox Code Playgroud)

在这里我没有得到所需的输出。任何帮助都会很棒

gle*_*man 9

我会分两步完成:(编辑:工件是一个对象数组)

inner=$(jq -n --arg name oer \
              --arg version "$ot" \
              '$ARGS.named'
)
final=$(jq -n --arg configId "$configid" \
              --arg objectname "tempfile" \
              --arg test "2021" \
              --argjson artifacts "[$inner]" \
              '$ARGS.named'
)
echo "$final"
Run Code Online (Sandbox Code Playgroud)
{
  "configId": "c8f",
  "objectname": "tempfile",
  "artifacts": [
    {
      "name": "oer",
      "version": "1.01"
    }
  ],  "test": "2021"
}
Run Code Online (Sandbox Code Playgroud)

-c如果您希望最终输出为一行,请添加 a 。