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

JoltTransformJson:如何添加包含所有列名的changed_columns字段

可以通过JoltTransformJson实现该需求

原数据与需求

原JSON数据:

{
  "table": "table_name",
  "op_type": "U",
  "before": {
    "AAAA": "1-1111",
    "BBBB": "2022-08-31 03:57:01"
  },
  "after": {
    "AAAA": "1-1111",
    "BBBB": "2022-08-31 10:10:34",
    "DDDD": "2023-08-31 23:59:59"
  }
}

需要新增changed_columns字段,值为合并before和after的所有列名(去重后),用逗号拼接成字符串:"AAAA,BBBB,DDDD"

Jolt转换规则

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "before": {
        "*": "temp_columns[]"
      },
      "after": {
        "*": "temp_columns[]"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "temp_columns": "=unique(@(1,temp_columns))",
      "changed_columns": "=join(',',@(1,temp_columns))"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "temp_columns": ""
    }
  }
]

转换后结果

{
  "table": "table_name",
  "op_type": "U",
  "before": {
    "AAAA": "1-1111",
    "BBBB": "2022-08-31 03:57:01"
  },
  "after": {
    "AAAA": "1-1111",
    "BBBB": "2022-08-31 10:10:34",
    "DDDD": "2023-08-31 23:59:59"
  },
  "changed_columns": "AAAA,BBBB,DDDD"
}

步骤说明

  • Shift阶段:保留原有的table、op_type、before、after字段,同时把before和after里的所有列名收集到临时数组temp_columns中;
  • Modify阶段:先对temp_columns去重,再用逗号把数组元素拼接成字符串,赋值给changed_columns;
  • Remove阶段:删除临时数组temp_columns,只保留最终需要的字段。

内容的提问来源于stack exchange,提问作者veganzombie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:50:38