You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JOLT将JSON中的日期与日期时间转换为ISO格式

基于DataType转换JSON日期格式的NiFi实现方案

一、JOLT实现可行性及操作选择

JOLT完全可以实现这个需求,modify-overwrite-beta是更合适的操作——shift主要用于JSON结构的调整、字段重排,而modify-overwrite-beta专门负责对字段值进行修改、格式化,刚好匹配你日期格式转换的需求。

示例JOLT规范

假设你的输入JSON结构如下:

{
  "DataType": "DATE",
  "DateValue": "2024/05/20"
}

对应的JOLT转换规范:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "DateValue": [
        "=toDate('yyyy/MM/dd')",
        "#(1,DataType) == 'DATE' ? 'format('yyyy-MM-dd')' : 'format('yyyy-MM-dd\\'T\\'HH:mm:ss')'"
      ]
    }
  }
]

说明:

  1. 第一步=toDate('yyyy/MM/dd')先将原始日期字符串转为日期对象,这里的格式要和你的原始日期字符串格式匹配;如果原始值是时间戳,直接用=toDate()即可。
  2. 第二步通过三元判断,根据DataType的值选择对应的格式化规则,输出目标ISO格式。

二、其他可选NiFi处理器

如果觉得JOLT规则编写繁琐,也可以用以下处理器实现:

  • UpdateRecord:基于Record API解析JSON,通过表达式语言直接判断DataType字段后格式化日期,示例表达式:${DataType:equals('DATE') ? ${DateValue:toDate('yyyy/MM/dd'):format('yyyy-MM-dd')} : ${DateValue:toDate('yyyy/MM/dd HH:mm:ss'):format('yyyy-MM-dd\'T\'HH:mm:ss')}}
  • ExecuteScript:用Groovy或JavaScript编写自定义脚本,直接遍历JSON节点,根据DataType字段修改对应日期值的格式,灵活性更高
  • TransformRecord:和UpdateRecord逻辑类似,适合结构化数据的批量转换操作

内容的提问来源于stack exchange,提问作者Katja Bürger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:57:36