小编zdk*_*zdk的帖子

修改 JSON jq 中的键值数组

以防万一,我的原始 json 如下所示:

{
  "taskDefinition": {
    "containerDefinitions": [
      {
        "name": "web",
        "image": "my-image",
        "environment": [
          {
            "name": "DB_HOST",
            "value": "localhost"
          },
          {
            "name": "DB_USERNAME",
            "value": "user"
          }
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我想就地修改匹配键的值,如下所示:

jq '.taskDefinition.containerDefinitions[0].environment[] | select(.name=="DB_USERNAME") | .value="new"' json

我得到了输出

{
  "name": "DB_USERNAME",
  "value": "new"
}
Run Code Online (Sandbox Code Playgroud)

但我想要更像就地修改或原始的整个 json 并修改新值,如下所示:

{
      "taskDefinition": {
        "containerDefinitions": [
          {
            "name": "web",
            "image": "my-image",
            "environment": [
              {
                "name": "DB_HOST",
                "value": "localhost"
              },
              {
                "name": "DB_USERNAME",
                "value": "new"
              }
            ]
          }
        ]
      }
    }
Run Code Online (Sandbox Code Playgroud)

是否可以使用 …

shell command-line json edit jq

6
推荐指数
1
解决办法
1366
查看次数

标签 统计

command-line ×1

edit ×1

jq ×1

json ×1

shell ×1