2017-12-14 1 views
1

jqを使用して1つのjsonファイルの内容を別のファイルのハッシュにロードする方法を理解しようとしています。例:jsonを使用して別のjsonファイルのハッシュに1つのjsonファイルをロードする

このファイル:

{ 
    "annotations": {...}, 
    "rows": [ {...}, {...}] 
} 

は、ハッシュのダッシュボードで、このファイルに挿入する必要があります。

{ 
    "dashboard": { }, 
    "overwrite": true, 
    "message": "new commit" 
} 

ので、結果のファイルは、私が考えていた

{ 
    "dashboard": { 
    "annotations": {...}, 
    "rows": [ {...}, {...}] 
    }, 
    "overwrite": true, 
    "message": "new commit" 
} 

する必要がありますパイプでそれをする|または| =演算子を使用することはできませんが、1つのコンテンツを使用して他のファイルの選択フィルタに割り当てる方法を理解することはできません。

答えて

0

JQソリューション:

jq --slurpfile annot annot.json '.dashboard |= $annot[0]' dashb.json 

--slurpfile variable-name filename

このオプションは、指定したファイル内のすべてのJSONテキストを読み込み、指定されたグローバル変数に解析されたJSON値の 配列をバインド。

+0

--slurpfileオプションは、私は必要なもので、それをJQを更新しましたむしろ明らかでした!ありがとうございました! –

0

あなたJQが--slurpfileれていない場合は、次のように、あなたは、例えば、JQを実行できます。

jq -s '.[0] as $fragment | .[1] | (.dashboard |= $fragment)' fragment.json dashboard.json 
+0

そのようにするのは悪い考えではありません。 –

関連する問題