Apache nifi 如何提取json的所有属性并映射到flowfileattribute

Apache nifi 如何提取json的所有属性并映射到flowfileattribute,apache-nifi,Apache Nifi,我想知道是否有任何方法可以反转“AttributesToJSON”。问题是,我从第三方获得了一个json(它是单个对象,而不是数组)。JSON位于flowfile内容中。现在我想把json的所有属性都放到流文件属性中。流文件属性的名称与json属性相同 因此,当我们将“属性列表”保持为空时,它与AttributesToJSON完全相反 我知道我可以通过EvaluateJsonPath提取属性,但是这个文件可以在100秒内包含属性,我不想由于程序员复制粘贴而引入错误。另外,我想让这部分代码保持动态

我想知道是否有任何方法可以反转“AttributesToJSON”。问题是,我从第三方获得了一个json(它是单个对象,而不是数组)。JSON位于flowfile内容中。现在我想把json的所有属性都放到流文件属性中。流文件属性的名称与json属性相同

因此,当我们将“属性列表”保持为空时,它与AttributesToJSON完全相反

我知道我可以通过EvaluateJsonPath提取属性,但是这个文件可以在100秒内包含属性,我不想由于程序员复制粘贴而引入错误。另外,我想让这部分代码保持动态,如果101属性被添加到json中,我希望101属性被添加到流文件中。

您可以使用(使用
*
捕获组)将所有json提取到一个属性中,这样您就可以使用表达式语言的函数查询此json。 例如:

{
  "a": 1,
  "b": 2
}

UpdateAttribute:a=
${myJsonAttribute:jsonPath('$.a')}
将产生一个名为
a
且值
1

的属性,您可以使用脚本。下面的答案在技术上正确说明了如何使用ExtractText,但通常我会问您为什么需要提取100个属性,这可能会导致性能下降,因为属性保存在内存中,并且在每次修改流文件时都必须写入流文件repo