Kar*_*ava 2 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"
}
Run Code Online (Sandbox Code Playgroud)
预期产量
第一个JSON:
{
"campaign_key": 316,
"client_key": 127,
"cpn_mid_counter": "24",
"cpn_name": "Bopal",
"cpn_status": "Active"
}
Run Code Online (Sandbox Code Playgroud)
第二个JSON:
{
"clt_name": "Bopal Ventures",
"clt_status": "Active"
}
Run Code Online (Sandbox Code Playgroud)
如何使用NIFI来实现?谢谢。
您可以按照“用户”的指示进行操作。这种方法的不好之处在于,如果字段数量在增加,则需要向其中添加那么多JSON Path表达式属性EvaluateJsonPath,然后在中添加那么多属性ReplaceText。
相反,我建议的是,将QueryRecordRecord Reader设置为JsonTreeReader,将Record Writer设置为JsonRecordSetWriter。并添加两个动态关系属性,如下所示:
json1 : SELECT campaign_key, client_key, cpn_mid_counter, cpn_name, cpn_status FROM FLOWFILE
json2 : SELECT clt_name, clt_status FROM FLOWFILE
Run Code Online (Sandbox Code Playgroud)
这种方法负责读取和写入JSON格式的输出。另外,如果要添加更多字段,只需在SQL SELECT语句中添加字段名称。
QueryRecord处理器使您可以对FlowFile内容执行SQL查询。可以在这里找到有关此处理器的更多详细信息
附加截图
卡西克,
使用EvaluateJsonPath处理器通过使用其键来获取所有 json 值。
示例:$.campaign_keyfor 获取compaign 键值和$.clt_name获取clt 名称。
像上面一样,您可以获得所有json。
然后使用 ReplaceText Processor 将单个 json 转换为两个 json。
{"Compaign_Key":${CompaignKey},...etc}
{"Clt_name":${clt_name}}
Run Code Online (Sandbox Code Playgroud)
它会将单个 json 转换为两个 json。
希望这有帮助,如果您有问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |