簡體   English   中英

使用 JQ 根據屬性值查找 JSON 數組中的替換值

[英]Find a replace a value in a JSON array based on a property value with JQ

我有以下json:

{
  "configs": [
    {
      "configName": "config1",
      "configTarget": "/app/appsettings.json",
      "uid": "0",
      "gid": "0",
      "mode": 292
    },
    {
      "configName": "config2",
      "configTarget": "/app/appsettings.json",
      "uid": "0",
      "gid": "0",
      "mode": 292
    }
  ]
}

我想更改當前值為config1configName的值。

我知道我能做到

.configs[0].configName = "foo"

但是我不想依賴我想要更改的數組中的位置,我怎樣才能找到它然后設置值?

.configs |= map(select(.configName == "config1").configName |= "foo-bar")
  1. 更新.configs ( |= )
  2. Map數組中的每個對象
  3. 過濾( select() )所需的對象
  4. 更新.configName

結果:

{
  "configs": [
    {
      "configName": "foo-bar",
      "configTarget": "/app/appsettings.json",
      "uid": "0",
      "gid": "0",
      "mode": 292
    },
    {
      "configName": "config2",
      "configTarget": "/app/appsettings.json",
      "uid": "0",
      "gid": "0",
      "mode": 292
    }
  ]
}

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM