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

时间:2019-02-19 06:56:39

标签: apache-nifi

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

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

我知道我可以通过EvaluateJsonPath提取属性,但是此文件的属性可以在100 s之内,并且由于程序员复制粘贴,我不想引入错误。我也想保持这部分代码动态,如果将101属性添加到json,我希望将101属性添加到流文件。

1 个答案:

答案 0 :(得分:1)

您可以使用ExtractText(使用.*捕获组)将所有json提取到一个属性中,因此您可以使用表达式语言的jsonPath函数来查询此json。 示例:

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

UpdateAttribute:a = {${myJsonAttribute:jsonPath('$.a')}将得到一个名为a且值为1的属性