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

如何基于条件将扁平化JSON中的日期转为ISO格式(Jolt)

Jolt转换扁平化JSON中DATEANDTIME类型日期为ISO格式

针对给定的扁平化JSON结构,可通过以下Jolt规范实现需求:仅当对应属性的attributeDataType为DATEANDTIME时,将日期值转换为ISO格式,其余字段原样保留。

Jolt规范

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*attributeDataType": {
          "DATEANDTIME": {
            "$(2)": {
              "*": "&3.&1",
              "values[0].value": {
                "^([0-9]{2})\\.([0-9]{2})\\.([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$": {
                  "$3-$2-$1'T'$4:$5:$6": "&6.&5.&4.&3.&2.&1"
                },
                "^([0-9]{2})\\.([0-9]{2})\\.([0-9]{4})$": {
                  "$3-$2-$1": "&6.&5.&4.&3.&2.&1"
                }
              }
            }
          },
          "*": {
            "$(2)": {
              "*": "&3.&1"
            }
          }
        },
        "*": "&2.&1"
      }
    }
  },
  {
    "operation": "sort"
  }
]

规范说明

  1. Shift操作核心逻辑:
    • 用通配符匹配所有扁平化键,提取每个属性的前缀(如units.1021298.attributes[1].endtime)。
    • 针对attributeDataType为DATEANDTIME的属性,单独处理values[0].value字段:
      • 用正则匹配两种输入格式:dd.MM.yyyy HH:mm:ss和dd.MM.yyyy,分别转换为yyyy-MM-dd'T'HH:mm:ss和yyyy-MM-dd的ISO格式。
    • 非DATEANDTIME类型的属性及其他字段,直接原样映射到输出。
  2. Sort操作:可选添加,用于保持输出字段顺序与输入一致,无需顺序可移除。

验证结果

将输入JSON传入Jolt转换器后,DATEANDTIME类型的日期值会成功转换为ISO格式,其余字段完全保留,与你期望的输出一致。

内容的提问来源于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.17 11:03:18