我想在nifi中分割和传输json数据,这里是我的json结构,如下所示;我想把json按id1、id2数组拆分,把json传输到各自的处理器组,比如处理器组a、b。我尝试使用evaluate json路径$.id1,$.id2,但没有得到确切的解决方案。你能帮我解决这个问题吗;
{
"id1": [{
"u_name": "aa"
}, {
"addr": "bb"
}],
"id2": [{
"u_name": "aa"
}, {
"addr": "bb"
}]
}
2条答案
按热度按时间uqdfh47h1#
下面是如何使用evaluatejsonpath获得所需的值:
@瓦伦拉提南 通过evaluatejsonpath访问数组对象中的json可能会非常混乱。 我还注意到json的结构有点让人困惑,因为两者的值都相同。 我已经为cc和dd的测试调整了id2,以便我可以区分id1和id2的值。
您需要的解决方案是(请参阅模板以了解确切的字符串值):
注意,我们对每个json对象($.object)使用普通树,然后访问数组(0,1),然后访问数组的对象。 另外请注意,可以使用或不使用命令访问json对象数组。在[。
参考文献:https://community.cloudera.com/t5/support-questions/how-to-extract-fields-in-flow-file-which-are-surrounded-by/m-p/208635
在我的github上测试您的问题时,您也可以找到我的模板:https://github.com/steven-dfheinz/nifi-templates/blob/master/nifi_evaluatejsonpath_demo.xml
piztneat2#
你要找的处理器是
SplitJSON
. 配置如下:然后,您将收到两个流文件:
第一个将包含
id1
:第二个将包含
id2
: