通过SplitJson和MergeContent过滤JSON

时间:2019-07-28 19:18:44

标签: apache-nifi

我正在nifi中构建流程,在该流程中,我需要按字段过滤JSON。因此,我决定拆分json,然后通过SplitJson和MergeContent处理器合并过滤的部分。我的splitJson处理器JsonPath是$.items[?(@.name =~ /.*Test.*/i)],因此它拆分正确,但是当我想将所有部分合并到一个json文件(Merge Strategy = Defragment)中时,它合并文件但方式不正确。例如:

输入

{ "items": [  { "name": "A" }, { "name": "B" }, { "name": "Test" }, { "name": "Test" } ] }

因此,我希望MergeContent Processor具有以下功能:

[ {"name":"Test"}, {"name":"Test"} ]

但我知道了

{"name":"Test"}{"name":"Test"}

所以这甚至不是json

理想的变体是以某种方式合并:

{ "items":[
{"name": "Test"},
{"name": "Test"}
]}

如何像这样合并?

1 个答案:

答案 0 :(得分:1)

按如下所述配置MergeContent Processor

  • 分隔符策略为 Text

  • 标题为 [

  • ]

  • 分界器为 ,

现在,来自 MergeContent 处理器的输出流文件将显示为

[ {"name":"Test"}, {"name":"Test"} ]