我收到了一个很大的json文件,其中包含许多仅出于历史原因而不再使用的属性。为了简化此文件,我使用了jq
和to_entries
来解构了json,但是现在我不知道如何用剩余的子对象重建我的对象。
这里是例子:
输入
{
"empty1": [],
"empty2": [],
"full1": "test",
"full2": { "a": 1, "b": 2 }
}
当前过滤器:
to_entries[] | select((.value | length) > 0) | { (.key) : .value }
当前输出
{"full1":"test"}
{"full2":{"a":1,"b":2}}
所需的输出
{
"full1": "test",
"full2": {
"a": 1,
"b": 2
}
}
答案 0 :(得分:2)
使用with_entries()
的时间要短得多,您可以使用它
jq 'with_entries(select((.value | length) > 0))' json
对于您的问题,from_entries
执行与to_entries
相反的转换。使用with_entries(foo)
是to_entries | map(foo) | from_entries
语法的简写。