如何从数组内的嵌套对象复制字段

问题描述 投票:0回答:1

我的json输入是:

{
"zoo": [
   { "room": { "name": "x" }, "gpu": { "id": "fish",  "sum": 0 } },
   { "room": { "name": "y" }, "gpu": { "id": "zebra", "sum": 797 } }
  ]
}

我需要将斑马的总和复制到鱼的总和中。因此,输出将如下所示:

{
"zoo": [
   { "room": { "name": "x" }, "gpu": { "id": "fish",  "sum": 797 } },
   { "room": { "name": "y" }, "gpu": { "id": "zebra", "sum": 797 } }
  ]
}

但是,我无法知道表的顺序,因此,我无法使用表索引。实际上,我需要将其作为“名称”字段。

json jq edit
1个回答
0
投票

再次使用

.[]
迭代所有内容,并使用
select
筛选出正确的:

(.zoo[].gpu | select(.id == "fish").sum) =
(.zoo[].gpu | select(.id == "zebra").sum)

演示

© www.soinside.com 2019 - 2024. All rights reserved.