转换嵌套的json对象
我有一个嵌套的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": {} } }
{
"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
并不是最直观的名称。