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

NiFi中基于通配符过滤JSON键并实现指定结构转换求助

NiFi实现指定JSON结构转换方案

针对你需要将包含ABC#nn、TTT#nn及无关键值对的JSON,转换为以TTT#nn值为键、对应ABC#nn为值的结构,可通过JoltTransformJSON处理器实现,具体步骤如下:

核心思路

利用Jolt的声明式转换规则,自动匹配所有ABC#nn与TTT#nn的对应关系,丢弃无关键值对,同时完成结构重组。

处理器配置

  1. 添加JoltTransformJSON处理器,接入待处理的JSON数据流。
  2. 在Jolt Specification中填入以下转换规则:
[
  {
    "operation": "shift",
    "spec": {
      "TTT#*": {
        "$": "@(1,&)",
        "#ABC#&": {
          "@(2,ABC#&)": "&"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "ABC#*": "=toInteger"
      }
    }
  }
]

规则说明

  • Shift操作:
    • TTT#*匹配所有以TTT#开头的键,*捕获编号nn;
    • $引用当前TTT#nn的数值,作为新JSON的顶层键;
    • #ABC#&生成对应的ABC#nn键(&复用之前捕获的nn);
    • @(2,ABC#&)向上回溯两层,获取原JSON中对应ABC#nn的值,赋值给新结构中的ABC#nn键。
  • Modify操作(可选):
    • 将ABC#nn的浮点数(如1.0)转换为整数(如1),不需要此转换可直接删除该操作块。
  1. Jolt Transform DSL选择Chain,支持多步骤转换。

注意事项

  • 若原JSON中存在多个TTT#nn值重复的情况,后出现的键值对会覆盖之前的,需根据业务场景提前处理重复值;
  • 该规则会自动丢弃所有非ABC#nn、TTT#nn的键值对,无需额外配置过滤逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:23:10