我正在使用jq处理大型json文件。它看起来像这样:
FILE1.json
{
"person": [
{
"name": "sam",
"age": "40",
"weight": "180",
"height": "6"
},
{
"name": "peter",
"age": "41",
"weight": "180",
"height": "6.1"
},
{
"name": "mike",
"age": "40",
"weight": "200",
"height": "5.9"
},
{
"name": "ethan",
"age": "41",
"weight": "190",
"height": "6"
}
]
}
我想使用jq工具将重量值从200更改为195,其中name为" mike"。
我怎么能这样做?
答案 0 :(得分:6)
我们的想法是更新人员数组,其中名称为"mike"
的对象将被修改为weight
"195"
。否则它就被跳过了。
.person |= map(
if .name == "mike"
then .weight = "195"
else .
end)
或者更简洁地,搜索人员以更新和更新它们:
(.person[] | select(.name == "mike")).weight = "195"