NiFi场景下如何使用Jolt Spec拆分字段实现JSON转换
在NiFi中用Jolt实现指定JSON格式转换
当然可以用Jolt Spec实现这个转换,核心是通过split函数拆分nfe_composicao字段,并重新映射字段结构。
输入JSON
[ { "fornecedor_frete": "EMPRESA BRAS. CORREIOS E TELEGRAFOS - OR SAO PAULO", "nfe_composicao": "40814-1" }, { "fornecedor_frete": "EMPRESA BRAS. CORREIOS E TELEGRAFOS - OR SAO PAULO", "nfe_composicao": "40817-1" } ]
目标输出JSON
{ "documentos": [ { "numeroDocumento": "40814", "serie": "1" }, { "numeroDocumento": "40817", "serie": "1" } ] }
对应的Jolt Spec
[ { "operation": "shift", "spec": { "*": { "nfe_composicao": { "@(0)": { "split('-',#)": { "0": "documentos[&3].numeroDocumento", "1": "documentos[&3].serie" } } } } } } ]
规格说明
shift操作:负责字段的重新映射和结构转换。*:遍历输入数组中的每一个元素。split('-',#):将当前nfe_composicao字段的值按-拆分成数组,#代表当前节点的原始值。&3:通过层级引用,将拆分后的值对应到输出数组documentos的对应索引位置(&3表示向上回溯3层的索引,即外层数组的循环索引)。- 自动忽略
fornecedor_frete字段:因为目标输出中不需要该字段,Jolt会直接丢弃未映射的字段。
内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari
相关产品推荐
相关产品推荐

