json - 使用 Nifi 将 JSON 拆分为两个单独的 JSON 对象

标签 json apache-nifi kylo

我有一个类似于

的 JSON
{
    "campaign_key": 316,
    "client_key": 127,
    "cpn_mid_counter": "24",
    "cpn_name": "Bopal",
    "cpn_status": "Active",
    "clt_name": "Bopal Ventures",
    "clt_status": "Active"
}

预期输出

第一个 JSON:

{
    "campaign_key": 316,
    "client_key": 127,
    "cpn_mid_counter": "24",
    "cpn_name": "Bopal",
    "cpn_status": "Active"
}

第二个 JSON:

{
    "clt_name": "Bopal Ventures",
    "clt_status": "Active"
}

如何使用 NIFI 实现此目的?谢谢。

最佳答案

您可以按照“用户”所说的进行操作。该方法不太好的一点是,如果字段数量不断增加,则需要将许多 JSON Path 表达式属性添加到 EvaluateJsonPath 中,然后在 中添加许多属性>替换文本

相反,我建议使用QueryRecord,并将记录读取器设置为 JsonTreeReader,将记录写入器设置为 JsonRecordSetWriter。并添加两个动态关系属性如下:

json1 : SELECT campaign_key, client_key, cpn_mid_counter, cpn_name, cpn_status FROM FLOWFILE

json2 : SELECT clt_name, clt_status FROM FLOWFILE

此方法负责以 JSON 格式读取和写入输出。另外,如果您想添加更多字段,只需在 SQL SELECT 语句中添加字段名称即可。

QueryRecord 处理器允许您对 FlowFile 内容执行 SQL 查询。有关该处理器的更多详细信息,请参阅 here

附加屏幕截图

enter image description here

enter image description here

关于json - 使用 Nifi 将 JSON 拆分为两个单独的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50461253/

相关文章:

hadoop - nifi ConvertRecord JSON 到 CSV 只得到一条记录?

apache-nifi - 使用 nifi 根据条件合并流文件?

teradata - Teradata Kylo 产品发生了什么变化?

php - 谷歌地理编码不适用于数据库中具有特殊字符的地址

php - 删除空 JSON 参数

javascript - 将JSON数据转换为二维数组

websocket - 使用 kafka 消息并通过过滤客户端发送将其发送到 websocket 客户端的最佳方式

apache-kafka - NiFi - 如何从 FlowFile 内容中删除周围的双引号

java - 无法登录 Kylo

php - 合并来自mysql的php中的两个数组并转换为json