【发布时间】:2020-09-15 14:00:30
【问题描述】:
当另一个键的值已知时,我正在努力为 jq 构建一个适当的过滤器以查找特定键的值。
这是json文件:
[
{
"Header": {
"Tenant": "TenantX",
"Rcode": 200
},
"Body": {
"values": [
{
"id": "aaaa0001-0a0a-0b0b-0a95-6625bef115e5",
"name": "Attribute1"
},
{
"id": "aaaa0001-0a0a-0b0b-9926-f5dc47d312dd",
"name": "Attribute2"
},
{
"id": "aaaa0001-0a0a-0b0b-aea9-6b39641a0695",
"name": "Attribute3"
},
{
"id": "aaaa0001-0a0a-0b0b-a62b-5b26838eeca7",
"name": "Attribute4"
}
]
}
}
]
我的目标 - 对于“name”键的任何给定值,在同一 {} 块中找到“id”键的值。或者以伪代码/任务为例:
When Header.Tenant ==="TenantX" and Body.values[].name =="Attribute1"
then
display the value of "id"
in the same block where "Attribute1" is
"id" 和 "name" 的值是唯一的,但名称/id 组合在 Body.values[] 数组中的位置可以是任何位置。换句话说,对于一个租户Attribute1 可以在数组的第一个元素中,而对于另一个租户 - 在第 10 个。此外,一些租户可以在数组中拥有特定的name/id,而其他租户则没有。
我想如果我能找到数组中给定属性的唯一位置n - Body.values[n].name,那么Body.values[n].id 应该会给我答案,对吧?
谢谢
【问题讨论】: