【发布时间】:2019-07-16 09:25:08
【问题描述】:
我有一些看起来像这样的数据
{
"type1": [
"a", "b"
],
"type2": [
"c", "d"
],
"type3": "x"
}
我想把它转换成
[
{"value": "a", "type": "type1" },
{"value": "b", "type": "type1" },
{"value": "c", "type": "type2" },
{"value": "d", "type": "type2" },
{"value": "x", "type": "type3" },
]
数组元素可以有一个或多个值。这可能使用jq吗?
我能够处理非数组元素,但我的表达式只保留列表中的最后一项。
to_entries
| map_values({value:[.value]|flatten, type:.key})
| map_values({value:.value[], type:.type})
我得到这个结果,其中元素“b”和“d”被排除在结果之外。
[
{
"value": "a",
"type": "type1"
},
{
"value": "c",
"type": "type2"
},
{
"value": "x",
"type": "type3"
}
]
【问题讨论】: