嗨我对apache nifi很新,我需要从json字符串中提取一个郊区
flowfile看起来像这样
\/
{"UserName:"John Doe", "Address":"22 smith st, Smithville, NSW","IP":"10.10.10.1}
郊区始终是“地址”属性的逗号分隔列表中的第二个最后一个值。有时它不会在左边的第二个位置,因为可能有类似
的东西{"UserName:"John Doe", "Address":"Level 10, 22 smith st, Smithville, NSW","IP":"10.10.10.1}
我尝试将提取文字与正则表达式[^,]+(?=,[^,]*$)
一起使用
但无法使其正确提取属性。
答案 0 :(得分:1)
我认为你没有使用extractText来提取Json值,这不是正确的方法。
您可以使用以下配置来评估JsonPath处理器以提取Json属性的“地址”。
只需将目标的属性配置为“flowfile-content”,将返回类型配置为“Json”。
现在您必须添加名为"Address":$.Address
的新属性。
在这里,您可以接收json的地址将存储在名为“Address”的属性中,然后您可以提取地址中存在的第二列,如${Address:substringBeforeLast(','):substringAfterLast(',')}.
请查看可能对您有用的表达指南。
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#substringafterlast https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#substringbeforelast