JOLT转换求助:将嵌套列表提取为顶层数组元素
JOLT转换求助:将嵌套列表提取为顶层数组元素
嘿,我来帮你搞定这个JOLT转换的问题!你现在的需求是把原JSON里嵌套的Notes和Actions列表都提取出来,和Request里的基础字段一起变成顶层数组的独立元素对吧?
你现有的spec只处理了Request里的基础字段,所以自然会漏掉Notes和Actions部分。咱们只需要在spec里补充对这两个列表的处理逻辑就行,具体的JOLT spec我给你写好了,直接用就行:
[ { "operation": "shift", "spec": { "*": { "Request": { // 把Request里的基础字段映射到新数组的第一个元素(索引0) "Id": "[0].&", "name": "[0].&", "CreatedBy": "[0].&", "Updated": "[0].&", "UpdatedBy": "[0].&", // 把Notes列表映射到新数组的第二个元素(索引1) "ListOfNotes": { "Notes": "[1].Notes" }, // 把Actions列表映射到新数组的第三个元素(索引2) "ListOfActions": { "Actions": "[2].Actions" } } } } } ]
我给你拆解下这个spec的逻辑:
- 用
shift操作来重新调整字段的层级和位置 *匹配原数组里的每一个元素(这里原数组只有一个元素)- 对Request下的基础字段,指定它们放到新数组的
[0]位置,也就是第一个顶层对象 - 对
ListOfNotes里的Notes数组,直接映射到新数组的[1].Notes,作为第二个顶层对象 - 同理,
ListOfActions里的Actions数组映射到新数组的[2].Actions,作为第三个顶层对象
替换你原来的spec后,就能得到和你预期完全一致的输出啦!
备注:内容来源于stack exchange,提问作者pramod wadappi
相关产品推荐
相关产品推荐

