如何在Nifi中迭代每个Flowfile中的json?

时间:2019-09-10 03:34:10

标签: apache-nifi jsonpath

例如,有8个FF,然后我将json转换为每个FF的属性,如下所示: enter image description here

enter image description here

我在图片中添加了EvaluateJsonPath和5个属性和值。 如果我需要转换1000多属性,用EvaluateJsonPath设置1000 P / V太麻烦了。 我可以轻松地做到这一点吗? 感谢您的帮助!TIA

1 个答案:

答案 0 :(得分:0)

如果您打算将单个JSON对象保持为一个组(即将它们合并回去),则不必(也不应该)将其分离出数组。在大多数情况下,拆分-转换-合并模式已由基于记录的处理器(例如UpdateRecord或JoltTransformRecord)代替。在您的情况下,由于数据是JSON,因此可以将JoltTransformJSON与以下规范配合使用,以将ID字段更改为ID2,而无需拆分数组:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "ID": "[#2].ID2",
        "*": "[#2].&"
      }
    }
  }
]

请注意,您也可以使用JoltTransformRecord来执行此操作(尤其是对于非JSON输入/输出),唯一的区别是该规范应用于数组中的每个对象,而不是JoltTransformJSON将该规范应用于整个数组。 JoltTransformRecord规范如下所示:

[
  {
    "operation": "shift",
    "spec": {
      "ID": "ID2",
      "*": "&"
    }
  }
]