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

如何在APACHE NIFI中使用Jolt部分替换数组内的字符串

解决方案:Apache NiFi Jolt 实现 website 字段指定字符串替换

输入 JSON 示例

覆盖所有需要替换的场景,同时包含一个无需修改的对照项:

{
  "information": [
    {
      "id": 1,
      "website": "https://abcd.com/api/v1"
    },
    {
      "id": 2,
      "website": "http://xyxvv.org/test"
    },
    {
      "id": 3,
      "website": "https://india.gateway.url/time/123/v1/user"
    },
    {
      "id": 4,
      "website": "https://example.com/someText/path"
    },
    {
      "id": 5,
      "website": "https://normal.site.com"
    }
  ]
}

期望输出 JSON 示例

对应替换规则处理后的结果:

{
  "information": [
    {
      "id": 1,
      "website": "https://abcd.india.com/api/v1"
    },
    {
      "id": 2,
      "website": "http://ind.hello.org/test"
    },
    {
      "id": 3,
      "website": "https://india.ios.gw.url/time/123/v2/user"
    },
    {
      "id": 4,
      "website": "https://example.com/diffText/path"
    },
    {
      "id": 5,
      "website": "https://normal.site.com"
    }
  ]
}

Jolt 转换规范

使用 modify-overwrite-beta 操作遍历数组元素,对 website 字段依次执行指定字符串替换:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "information": {
        "*": {
          "website": "=replaceAll(@(1), 'abcd', 'abcd.india')",
          "website": "=replaceAll(@(1), 'xyxvv', 'ind.hello')",
          "website": "=replaceAll(@(1), 'india.gateway.url/time/123/v1', 'india.ios.gw.url/time/123/v2')",
          "website": "=replaceAll(@(1), 'someText', 'diffText')"
        }
      }
    }
  }
]

关键说明

  • * 通配符匹配 information 数组中的每一个元素
  • 四次 replaceAll 调用按顺序执行指定替换,由于规则间无重叠,执行顺序不影响最终结果
  • @(1) 引用当前层级的 website 字段值作为替换操作的输入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:56:10