使用 jolt 将相似的 JSON 条消息合并为一条消息
Merge similar JSON messages into one using jolt
我正在努力实现的震撼转型需要一些帮助。主要是我需要保留 key_id
和 contacts 元素,然后将 contacts 中的所有元素分组到一个数组中。这将多个 JSON 消息合并为一批 json 组
我有这个输入
[
{
"key_id": "436",
"contacts": [
{
"436": "aaaa-10f2-4cc3-820c-444444444",
"1378": "2021-11-08",
"1381": "2",
"1421": "1"
}
]
},
{
"key_id": "436",
"contacts": [
{
"436": "1111111111-e213-4c90-a8e8-6666gtggggf",
"1378": "2021-11-09",
"1381": "2",
"1421": "1"
}
]
},
{
"key_id": "436",
"contacts": [
{
"436": "xxxxxxxx-e213-4c90-a8e8-xxxxxxxxxxx",
"1378": "2021-11-05",
"1381": "2",
"1421": "1"
}
]
}
]
并且想通过摇晃将它变成这样的东西
[
{
"key_id": "436",
"contacts": [
{
"436": "aaaa-10f2-4cc3-820c-444444444",
"1378": "2021-11-08",
"1381": "2",
"1421": "1"
},
{
"436": "1111111111-e213-4c90-a8e8-6666gtggggf",
"1378": "2021-11-09",
"1381": "2",
"1421": "1"
},
{
"436": "xxxxxxxx-e213-4c90-a8e8-xxxxxxxxxxx",
"1378": "2021-11-05",
"1381": "2",
"1421": "1"
}
]
}
]
我已经尝试了多种转换,但到目前为止还没有成功。提前致谢
您可以使用 shift 变换规范来组合
contacts
数组,同时保留 key_id
的所有相同元素,然后通过使用 基数 转换(例如
来选择最左边的 key_id
[
{
"operation": "shift",
"spec": {
"*": {
"*": "[0].&",
"contacts": {
"*": "[0].&1"
}
}
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"key_id": "ONE"
}
}
}
]
我正在努力实现的震撼转型需要一些帮助。主要是我需要保留 key_id
和 contacts 元素,然后将 contacts 中的所有元素分组到一个数组中。这将多个 JSON 消息合并为一批 json 组
我有这个输入
[
{
"key_id": "436",
"contacts": [
{
"436": "aaaa-10f2-4cc3-820c-444444444",
"1378": "2021-11-08",
"1381": "2",
"1421": "1"
}
]
},
{
"key_id": "436",
"contacts": [
{
"436": "1111111111-e213-4c90-a8e8-6666gtggggf",
"1378": "2021-11-09",
"1381": "2",
"1421": "1"
}
]
},
{
"key_id": "436",
"contacts": [
{
"436": "xxxxxxxx-e213-4c90-a8e8-xxxxxxxxxxx",
"1378": "2021-11-05",
"1381": "2",
"1421": "1"
}
]
}
]
并且想通过摇晃将它变成这样的东西
[
{
"key_id": "436",
"contacts": [
{
"436": "aaaa-10f2-4cc3-820c-444444444",
"1378": "2021-11-08",
"1381": "2",
"1421": "1"
},
{
"436": "1111111111-e213-4c90-a8e8-6666gtggggf",
"1378": "2021-11-09",
"1381": "2",
"1421": "1"
},
{
"436": "xxxxxxxx-e213-4c90-a8e8-xxxxxxxxxxx",
"1378": "2021-11-05",
"1381": "2",
"1421": "1"
}
]
}
]
我已经尝试了多种转换,但到目前为止还没有成功。提前致谢
您可以使用 shift 变换规范来组合
contacts
数组,同时保留 key_id
的所有相同元素,然后通过使用 基数 转换(例如
key_id
[
{
"operation": "shift",
"spec": {
"*": {
"*": "[0].&",
"contacts": {
"*": "[0].&1"
}
}
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"key_id": "ONE"
}
}
}
]