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

如何在Apache NiFi中按指定字符拆分JSON字符串值为多个子字段

解决方案

完全可以通过Jolt Transform实现你需要的拆分多个字段的需求,以下是可直接使用的配置和备选方案:

方案1:Jolt Transform 配置

使用两步操作即可完成转换,第一步拆分字符串为数组,第二步将数组元素映射到对应字段:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      // 把adress字段按逗号拆分为数组,存入临时字段addressParts
      "addressParts": "=split(',', @(1,adress))"
    }
  },
  {
    "operation": "shift",
    "spec": {
      // 保留原有字段
      "id": "id",
      "name": "name",
      // 按数组索引映射到对应地址字段
      "addressParts": {
        "0": "street",
        "1": "house number",
        "2": "city",
        "3": "country"
      }
    }
  }
]

你给出的示例输入经过上述配置转换后,即可完全匹配预期输出结果。如果后续需要调整拆分后的字段对应关系,只需要修改shift操作中数组索引对应的目标字段名即可。

方案2:Python 脚本实现(适合批量处理场景)

如果需要批量处理大量JSON文件,也可以用简单的Python脚本完成转换:

import json

# 单条JSON转换示例,批量场景可修改为遍历文件读取
input_data = json.loads('{"id": 123,"name": "James","adress": "Oxford Street,21,London,England"}')
# 拆分地址并写入新字段
address_items = input_data.pop("adress").split(",")
input_data.update({
    "street": address_items[0],
    "house number": address_items[1],
    "city": address_items[2],
    "country": address_items[3]
})
# 输出结果
print(json.dumps(input_data, indent=2, ensure_ascii=False))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:45:04