能否使用Jolt基于用户键动态生成多元素数组结构?
用Jolt实现该JSON结构转换需求
完全可以通过Jolt实现这个需求,以下是对应的Jolt转换规范:
[ { "operation": "shift", "spec": { "Users": { "*": { "@2,timestamp": "[&1].timestamp", "@2,place": "[&1].place", "@2,event": "[&1].event", "*": "[&1].&" } } } } ]
转换逻辑说明:
operation: shift:Jolt中用于结构重排的核心操作Users: { "*" }:遍历Users数组内的每一个元素@2,timestamp:向上回溯2层(跳出当前用户元素与Users数组),获取根节点的timestamp字段,通过[&1]将其赋值到新数组对应索引位置的timestamp字段@2,place、@2,event逻辑同上,复制根节点的对应字段到每个用户元素中"*": "[&1].&":将当前用户元素内的所有字段(如email、key1)原样映射到新数组的对应元素中
输入示例:
{ "timestamp": 1665923527, "place": "us", "event": "custom", "Users": [ { "email": "test1@test.com", "key1": "Admin" }, { "email": "test2@test.com", "key1": "Admin" } ] }
输出结果:
[ { "timestamp": 1665923527, "place": "us", "event": "custom", "email": "test1@test.com", "key1": "Admin" }, { "timestamp": 1665923527, "place": "us", "event": "custom", "email": "test2@test.com", "key1": "Admin" } ]
内容的提问来源于stack exchange,提问作者shwetha
相关产品推荐
相关产品推荐

