Jolt嵌套数组转换求助:拆分嵌套数组并重组输出结构
Jolt转换方案:展开嵌套数组并重组节点
针对你的需求,以下是可实现目标的Jolt转换规范:
[ { "operation": "shift", "spec": { "Def": { "capacity": { "accounttype": "Def.capacity.accounttype", "customer": "Def.capacity.customer", "config": { "*": { "serviceConfig": { "*": { "@(2,restriction)": "Def.capacity.config[&1].restriction", "serviceType": "Def.capacity.config[&1].serviceType" } } } } } } } } ]
转换逻辑说明:
- shift操作:核心用于重组JSON结构,实现嵌套数组的展开与节点重映射。
- 保留基础节点:直接将
accounttype和customer节点映射到输出对应路径,确保原有数据不丢失。 - 展开嵌套数组:
- 用
"*"遍历原config数组的每个元素(匹配数组索引)。 - 再次用
"*"遍历每个config元素下的serviceConfig数组。 @(2,restriction):向上回溯2层(从当前serviceConfig元素回到父级config元素),提取restriction节点值并映射到新config数组的对应位置。- 将当前
serviceConfig元素的serviceType直接映射到新config数组的对应位置。
- 用
经过此转换,原config数组中的单个元素会被拆分为与serviceConfig数组元素数量一致的独立节点,每个节点包含原有的restriction和对应的serviceType,同时serviceConfig嵌套数组会被完全移除,完全匹配你的期望输出。
内容的提问来源于stack exchange,提问作者shivam
相关产品推荐
相关产品推荐

