来自以逗号分隔的JSON属性的nifi extracttext

时间:2017-08-07 07:13:29

标签: apache-nifi

嗨我对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}

我尝试将提取文字与正则表达式[^,]+(?=,[^,]*$)一起使用 但无法使其正确提取属性。

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