如何统计NiFi中JSON对象流文件的记录数?

San*_*nda 4 apache-nifi

我正在调用一个 API,它返回一个 JSON 对象作为流文件形式的响应正文。我想统计流文件中的总记录数。

我尝试过像CalculateRecordStats 这样的记录处理器需要一个记录读取器,而这又需要一个模式。但我没有架构。那么有没有更好的方法呢?

{
"result":[
    {
        "key1": "value1",
        "key2": "value2"
    },
    {
        "key1": "value1",
        "key2": "value2"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

这是 api 响应正文返回的示例 JSON。记录是列表中的项目,它是“结果”键的值

在上面的示例中,有 2 条记录(列表中有 2 项)。这就是我想要计算的。

San*_*nda 8

谢谢安迪的回复。我从Hortonworks 社区讨论中找到了另一个答案,我觉得这个答案非常简单。

它是使用“EvaluateJSONPath”处理器并设置新的流文件属性

resultCount = $.result.length()
Run Code Online (Sandbox Code Playgroud)

稍后可以验证此属性 ${resultCount} 的正确性。