在NiFi中使用JOLT转换将DateTime转为指定格式的求助
解决NiFi中JOLT转换DateTime格式的问题
问题分析
你的输入是数组结构,原JOLT规则直接针对顶层time字段操作,没有遍历数组中的每个对象,导致转换失效。需要调整规则以处理数组内的每个元素。
正确的JOLT转换规则
[ { "operation": "modify-overwrite-beta", "spec": { "*": { // 遍历数组中的每一个对象 "time": { "toDate": ["${time}", "MM/dd/yyyy HH:mm:ss"], "format": "dd/MM/yyyy HH:mm:ss" } } } } ]
关键调整点
- 使用
*通配符遍历输入数组中的所有元素,确保每个对象的time字段都被处理 - 引用当前元素的
time字段时,使用${time}而非$(0.time),后者是引用顶层数组的第一个元素的time值,不符合遍历需求
验证结果
输入:
[ { "time": "02/15/2023 21:05:00", "actual_power": "0" }, { "time": "02/15/2023 21:10:00", "actual_power": "0" } ]
转换后输出:
[ { "time": "15/02/2023 21:05:00", "actual_power": "0" }, { "time": "15/02/2023 21:10:00", "actual_power": "0" } ]
内容的提问来源于stack exchange,提问作者Sumit Manna
相关产品推荐
相关产品推荐

