使用 jq 将新的键/值添加到文件中 json 数组中的每个对象

som*_*ant 1 json jq

我有一个如下所示的 json 文件。我想使用 jq 将 "stable": "yes" 添加到此文件中的每个对象。我怎样才能做到这一点?

 [
    {
        "id":"1",
        "name":"Blue"
    },
    {
        "id":"2",
        "name":"Red"
    }
 ]
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

 [
    {
        "id":"1",
        "name":"Blue",
        "stable": "yes"
    },
    {
        "id":"2",
        "name":"Red",
        "stable": "yes"
    }
 ]
Run Code Online (Sandbox Code Playgroud)

che*_*ner 5

map+会这样做:

$ jq 'map(. + {stable: "yes"})' tmp.json
[
  {
    "id": "1",
    "name": "Blue",
    "stable": "yes"
  },
  {
    "id": "2",
    "name": "Red",
    "stable": "yes"
  }
]
Run Code Online (Sandbox Code Playgroud)

由于输入是一个数组,因此.引用该数组中的每个对象,我们向其中添加另一个对象。

请注意,这还将覆盖stable每个对象中的任何现有键。