尝试获取存储在每个组的项目数组中的唯一值。总是混在一起...
我的JSON看起来像这样:
{
"start": 1534425916,
"stop": 1535030716,
"groups": [
{
"group": "transmission",
"data": {
"events": 665762,
},
"items": [
{
"item": "manualni",
"data": {
"events": 389158,
}
},
{
"item": "automaticka",
"data": {
"events": 276604,
}
}
]
},
{
"group": "vat",
"data": {
"events": 671924,
},
"items": [
{
"item": "ne",
"data": {
"events": 346221,
}
},
{
"item": "ano",
"data": {
"events": 325703,
}
}
]
}
]
}
期望的结果如下:
{
"id": "transmission",
"value": [
"manualni",
"automaticka",
]
}
{
"id": "vat",
"value": [
"ne",
"ano"
]
}
在命令行上尝试使用此过滤器:
| jq '{id: .groups[].group, value: [.groups[].items[].item]}'
导致上述混合结果的结果:
{
"id": "transmission",
"value": [
"manualni",
"automaticka",
"ne",
"ano"
]
}
{
"id": "vat",
"value": [
"manualni",
"automaticka",
"ne",
"ano"
]
}
您知道如何在此处接收唯一值吗?预先感谢!
答案 0 :(得分:0)
这将获得所需的结果。我认为。[]下的manual条目解释了它为什么起作用。
jq '.groups[] | {"id": .group, "value": [.items[].item]}'