如何利用Jolt转换匹配独立数组并将其转为对象数组
Jolt转换实现:二维数组与字段名映射为对象数组
需求说明
输入包含两个数组:a是存储数据值的二维数组,b是存储对应字段名的一维数组。需要将a中每个子数组的元素,按b的字段名顺序映射为对象,最终组成对象数组。
Jolt转换规范
仅需使用shift操作即可完成转换,具体规范如下:
[ { "operation": "shift", "spec": { "a": { "*": { "*": { "@": "[&2].@(3,b[&1])" } } } } } ]
关键逻辑解释
- 层级遍历:
- 第一层
"a": { "*": { ... } }:遍历a数组中的每一个子数据数组。 - 第二层
"*": { ... }:遍历子数组中的每一个数据元素。
- 第一层
- 值与键的映射:
@:指代当前遍历到的数据元素值(如"1"、"11"等)。[&2]:通过回溯索引&2定位结果数组的位置,对应a数组中子数组的索引,确保每个子数组对应结果中的一个对象。@(3,b[&1]):向上回溯3层到根节点,取b数组中索引为&1的元素作为对象的键(&1是当前数据元素在子数组中的索引,比如第0个元素对应b[0]即"age")。
转换效果
将给定输入代入上述规范后,即可得到期望的对象数组输出。
内容的提问来源于stack exchange,提问作者bertin
相关产品推荐
相关产品推荐

