此问题在此处已有答案:
jq get x levels of keys and remove all the rest(3个答案)
4天前关闭。
我有一些json数据,如下所示:
{
"a1": {
"b1": {
"c1": {...},
"c2": [...]
},
"b2": {
"c3": {...},
"c4": [...]
}
},
"a2": {
"b3": {
"c5": {...},
"c6": [...]
},
"b4": {
"c7": {...},
"c8": [...]
}
}
}
我想将其转换为:
{
"a1": {
"b1": {},
"b2": {}
},
"a2": {
"b3": {},
"b4": {}
}
}
注意b
是空对象,我可以得到一个b
的数组列表:
cat testjq.json | jq '. | map_values(keys)'
但不知道如何将其Map到对象。
1条答案
按热度按时间qpgpyjmq1#
如果只想将第二级上的所有项目设置为空对象,请用途:
Demo
注意:
map_values
定义为def map_values(f): .[] |= f;
,因此.[][] = {}
实际上与map_values(map_values({}))
相同。