NiFi中使用Jolt处理器转换JSON数组为指定目标结构
Apache NiFi Jolt处理器JSON转换配置
你可以直接在JoltTransformJSON处理器中使用如下转换规则,即可得到目标格式输出:
[ { "operation": "shift", "spec": { "data": { "*": { "alert_count": "alert", "category": "subcategory", "alert_array": { "alerts": { "*": { "@(3,source)": "alert_array[&1].category", "name": "alert_array[&1].newName", "id": "alert_array[&1].newID" } } } } } } } ]
注:上述规则默认遍历
data数组下的所有业务对象处理,可根据实际业务需求调整遍历匹配逻辑。
映射规则对应说明
- 输入
data[*].alert_count字段直接映射为输出根节点的alert字段 - 输入
data[*].category字段直接映射为输出根节点的subcategory字段 - 遍历
data[*].alert_array.alerts数组下的每一条告警项:- 向上取3层节点(即告警数组所属的data业务对象)的
source字段值,赋值给输出alert_array对应元素的category字段 - 告警项的
name字段重命名为newName输出 - 告警项的
id字段重命名为newID输出
- 向上取3层节点(即告警数组所属的data业务对象)的
使用提供的样例输入测试,转换后的输出与给定的目标格式完全匹配。
内容的提问来源于stack exchange,提问作者Neeraj
相关产品推荐
相关产品推荐

