【发布时间】:2018-01-21 21:43:47
【问题描述】:
我一直在尝试将一个非常扁平的 json 重新排列成更深入的结构,但到目前为止没有任何成功。这是我的源数据:
[ {
"id": "27",
"time": "2017-12-21 07:24:00",
"service_name": "prices",
"version": "61f4u8e",
"event": "Success"
},
{
"id": "28",
"time": "2017-12-21 07:23:00",
"service_name": "prices",
"version": "21c2f7d",
"event": "Fail"
},
{
"id": "29",
"time": "2017-12-21 07:21:00",
"service_name": "cart",
"version": "9ff24c4",
"event": "Success"
}
]
结果应该是这样的:
[
{
"name": "cart",
"data": [
{
"date": "2017-12-21 07:21:00",
"details": {
"event": "Success",
"version": "9ff24c4"
}
}
]
},
{
"name": "prices",
"data": [
{
"date": "2017-12-21 07:24:00",
"details": {
"event": "Success",
"version": "61f4u8e"
}
},
{
"date": "2017-12-21 07:23:00",
"details": {
"event": "Fail",
"version": "21c2f7d"
}
}
]
}
]
所以,基本上是按 service_name 分组并稍微移动其他字段。
到目前为止,我已经成功分组,但只有一个级别:
group_by(.service_name) | map({name: .[0].service_name, data: .})
假设输入将始终包含上例中的所有字段,我该如何调整其他值?
【问题讨论】: