转换嵌套的json对象

转换嵌套的json对象,json,object,merge,jq,Json,Object,Merge,Jq,我有一个嵌套的json对象,如下所示: { "results": { "category_a": { "types": { "type_a": {}, "type_b": {}, "type_c": {} } }, "category_b": { "types": { "type_y": {}, "type_z": {} } }

我有一个嵌套的json对象,如下所示:

{
  "results": {
    "category_a": {
      "types": {
        "type_a": {},
        "type_b": {},
        "type_c": {}
      }
    },
    "category_b": {
      "types": {
        "type_y": {},
        "type_z": {}
      }
    }
  }
}
我想把它压缩成一个更简单的嵌套对象:

{
  "category_a": [
    "type_a",
    "type_b",
    "type_c"
  ],
  "category_b": [
    "type_y",
    "type_z"
  ]
}
这就是我目前所拥有的,接近我想要的:

.results
| to_entries[]
| {
    (.key): [
      .value.types | keys[]
    ]
  }
除了输出是面向行的,而不是单个对象之外:

{
  "category_a": [
    "type_a",
    "type_b",
    "type_c"
  ]
}
{
  "category_b": [
    "type_y",
    "type_z"
  ]
}

如何将这两个json对象组合成一个?是否需要以不同的方式进行转换?

以程序为起点,只需将单独的对象括在方括号中,然后使用
添加

.results
| [to_entries[] | { (.key): [ .value.types | keys[] ] } ]
| add

谢谢,这确实有效,尽管对于该函数对该类型的数据结构所做的操作,
add
并不是最直观的名称。