如何在NiFi中使用Jolt Spec将JSON数组转为带索引的键值对?
用Jolt实现数组到带索引键的对象转换
需求说明
现有输入JSON结构:
{ "consultor_do_projeto": [ "Iago de Oliveira", "Murilo Tavares" ] }
需要转换为以下结构,若数组存在第三个元素,键名应为consultor2:
{ "consultor0" : "Iago de Oliveira", "consultor1" : "Murilo Tavares" }
实现方案
可以通过Jolt Spec实现该转换,对应的Jolt规格如下:
[ { "operation": "shift", "spec": { "consultor_do_projeto": { "*": { "@": "consultor&1" } } } } ]
规格说明
shift操作负责将输入的数组元素映射到目标对象的键值对中consultor_do_projeto指定要处理的数组字段"*"匹配数组中的每一个元素,&1表示引用当前元素的数组索引(从0开始)"@"表示取当前数组元素的值,将其赋值给名为consultor+索引的键
扩展验证
如果输入数组新增第三个元素,比如:
{ "consultor_do_projeto": [ "Iago de Oliveira", "Murilo Tavares", "Ana Silva" ] }
经过上述Jolt转换后,输出会自动变为:
{ "consultor0": "Iago de Oliveira", "consultor1": "Murilo Tavares", "consultor2": "Ana Silva" }
内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari
相关产品推荐
相关产品推荐

