jqを使用して変数から入れ子になったjsonファイルを作成する

jqを使用して変数から入れ子になったjsonファイルを作成する

変数を保存し、それを使用してファイルの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
                  

必須json o / p(output.json) -

{ "configId": "c8f", "objectname": "tempfile", "artifacts": [{ "name" : "oer", "version" : "1.01" }], "test" : "2021"}

ここで予想される結果は出ません。どんな助けでもいいでしょう。

ベストアンサー1

私は2つのステップでそれを行います:(編集:アーティファクトはオブジェクトの配列です)

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"
{
  "configId": "c8f",
  "objectname": "tempfile",
  "artifacts": [
    {
      "name": "oer",
      "version": "1.01"
    }
  ],  "test": "2021"
}

-c最終出力を1行にするには。


おすすめ記事