在NiFi中使用JOLT处理器为数组对象添加以ID为键的结构
JOLT转换解决方案:将数组元素转为键值对对象并包裹为单元素数组
嘿,我刚好熟悉Apache NiFi里的JOLT处理器,这就给你搞定这个转换需求!
所需JOLT Spec
你只需要一个shift操作就能完成这个转换,具体的JOLT规格如下:
[ { "operation": "shift", "spec": { "list": { "*": { "@": "list[0].@(catalog.id)" } } } } ]
规格解释
让我拆解一下这个spec的工作逻辑:
"list"::首先定位到输入JSON中的list数组节点。"*"::通配符,用来遍历list数组里的每一个元素。"@"::代表当前正在遍历的整个对象(也就是包含catalog、quantity、price的完整元素)。"list[0].@(catalog.id)":这是目标输出路径:list[0]表示把所有转换后的键值对放到输出的list数组的第一个元素中(也就是让原来的数组变成只有一个对象的数组)。@(catalog.id)表示取当前对象里catalog.id的值作为键,把当前对象作为对应的值存入。
验证效果
把这个spec放到NiFi的JOLT TransformJSON处理器中,处理你提供的输入后,就能得到你预期的输出结果啦。
内容的提问来源于stack exchange,提问作者Vrushabh Thosar
相关产品推荐
相关产品推荐

