我的JSON看起来像这样:
[
{
"fields": {
"versions": [
{
"id": "36143",
"name": "ST card"
},
{
"id": "36144",
"description": "Acceptance test card",
"name": "AT card"
}
],
"severity": {
"value": "B-Serious",
"id": "14231"
}
}
},
{
"fields": {
"versions": [
{
"id": "36145",
"name": "ST card"
}
],
"severity": {
"value": "C-Limited",
"id": "14235"
}
}
}
]
我想用jq将其转换为:
[
{
"id": "36143",
"name": "ST card"
"value": "B-Serious"
},
{
"id": "36144",
"name": "AT card"
"value": "B-Serious"
},
{
"id": "36145",
"name": "ST card"
"value": "C-Limited"
}
]
请注意,第一个对象有两个版本,严重程度相同。我尝试了jq的group_by和map函数,但还没有太成功。请帮助:)
答案 0 :(得分:4)
这应该有效。你不想在这里使用group_by
,如果你试图从更多变为更少,你就会这样做,我们会走另一条路。
您将不同版本与相应的严重性组合在一起。这是你怎么做到的。
map(.fields | (.versions[] | { id, name }) + { value: .severity.value })