jq解构后如何重建单个对象

时间:2018-12-12 09:25:54

标签: json object jq

我收到了一个很大的json文件,其中包含许多仅出于历史原因而不再使用的属性。为了简化此文件,我使用了jqto_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
  }
}

1 个答案:

答案 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语法的简写。