JQを使用してJSONファイルにKey-Valueペアを追加するには?

JQを使用してJSONファイルにKey-Valueペアを追加するには?

次の場所にJSONファイルがあります/tmp/target.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    ...
  }
}

次のように新しいキーと値のペアを追加したいと思います。

{
  "compileOnSave": false,
  "compilerOptions": {
    "skipLibCheck": true,
    "baseUrl": "./",
    ...
  }
}

次のコマンドを使用しますが、機能しません。

jq --argjson addobj '{"skipLibCheck": "true"}' '
  .compilerOptions{} |= $addobj
' /tmp/target.json

次のエラーが発生します。

jq: error: syntax error, unexpected '{', expecting $end (Unix shell quoting issues?) at <top-level>, line 2:
  .compilerOptions{} |= $addobj                  
jq: 1 compile error

私は何が間違っていましたか?期待どおりに機能させるにはどうすればよいですか?

ベストアンサー1

このように:

$ jq '.compilerOptions.skipLibCheck=true' file.json
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "skipLibCheck": true
  }
}

おすすめ記事