[英]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
}
]
}
我想更改當前值為config1
的configName
的值。
我知道我能做到
.configs[0].configName = "foo"
但是我不想依賴我想要更改的數組中的位置,我怎樣才能找到它然后設置值?
.configs |= map(select(.configName == "config1").configName |= "foo-bar")
.configs
( |=
)Map
數組中的每個對象select()
)所需的對象.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.