Apache nifi nifi从逗号分隔的JSON属性中提取文本

Apache nifi nifi从逗号分隔的JSON属性中提取文本,apache-nifi,Apache Nifi,您好,我对ApacheNIFI相当陌生,我需要从json字符串中提取一个字符串 flowfile看起来像这样 \/ {"UserName:"John Doe", "Address":"22 smith st, Smithville, NSW","IP":"10.10.10.1} 郊区始终是“address”属性的逗号分隔列表中的倒数第二个值。有时它不会在第二个位置从左,因为可能有类似的东西

您好,我对ApacheNIFI相当陌生,我需要从json字符串中提取一个字符串

flowfile看起来像这样

                                                    \/
{"UserName:"John Doe", "Address":"22 smith st, Smithville, NSW","IP":"10.10.10.1}
郊区始终是“address”属性的逗号分隔列表中的倒数第二个值。有时它不会在第二个位置从左,因为可能有类似的东西

{"UserName:"John Doe", "Address":"Level 10, 22 smith st, Smithville, NSW","IP":"10.10.10.1}
我曾尝试将提取文本与正则表达式一起使用
[^,]+(?=,[^,]*$)

但无法使其正确提取属性

我认为您没有使用extractText来提取Json值,这不是正确的方法

在以下配置的帮助下,您可以评估JSONPATH处理器以提取Json属性的“地址”

只需将目标的这些属性配置为“flowfile content”,并将返回类型配置为“Json”

现在,您必须添加名为“
”Address:$.Address
”的新属性

在这里,您可以接收json的地址,该地址将存储在名为“address”的属性中,然后您可以提取地址中存在的第二列,如
${address:substringBeforeLast(','):substringAfterLast(',')}。

请看这本表达式指南,它可能对您有用