使用 Nifi 将 JSON 拆分为两个单独的 JSON 对象
Split JSON into two individual JSON objects using Nifi
我有一个 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"
}
第 2 JSON:
{
"clt_name": "Bopal Ventures",
"clt_status": "Active"
}
我如何通过使用 NIFI 来实现这一点?谢谢。
卡尔提克,
使用 EvaluateJsonPath
处理器通过其键获取所有 json 值。
示例:$.campaign_key
用于获取广告键值,$.clt_name
用于获取 clt 名称。
像上面一样你可以获得所有 jsons.
然后使用 ReplaceText Processor 将单个 json 转换为两个 json。
{"Compaign_Key":${CompaignKey},...etc}
{"Clt_name":${clt_name}}
它将单个 json 转换为两个 json。
希望这对您有所帮助,如果您有任何问题,请告诉我。
你可以按照'user'所说的去做。这种方法的不好之处在于,如果字段数量增加,则需要将那么多 JSON 路径表达式属性添加到 EvaluateJsonPath
,然后在 EvaluateJsonPath
中添加那么多属性=12=].
我的建议是,使用 QueryRecord
并将 Record 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
这种方法负责读取和写入 JSON 格式的输出。另外,如果您想添加更多字段,只需在 SQL SELECT
语句中添加字段名称即可。
QueryRecord 处理器允许您对 FlowFile 内容执行 SQL 查询。有关此处理器的更多详细信息,请参见 here
附上截图
我有一个 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"
}
第 2 JSON:
{
"clt_name": "Bopal Ventures",
"clt_status": "Active"
}
我如何通过使用 NIFI 来实现这一点?谢谢。
卡尔提克,
使用 EvaluateJsonPath
处理器通过其键获取所有 json 值。
示例:$.campaign_key
用于获取广告键值,$.clt_name
用于获取 clt 名称。
像上面一样你可以获得所有 jsons.
然后使用 ReplaceText Processor 将单个 json 转换为两个 json。
{"Compaign_Key":${CompaignKey},...etc}
{"Clt_name":${clt_name}}
它将单个 json 转换为两个 json。
希望这对您有所帮助,如果您有任何问题,请告诉我。
你可以按照'user'所说的去做。这种方法的不好之处在于,如果字段数量增加,则需要将那么多 JSON 路径表达式属性添加到 EvaluateJsonPath
,然后在 EvaluateJsonPath
中添加那么多属性=12=].
我的建议是,使用 QueryRecord
并将 Record 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
这种方法负责读取和写入 JSON 格式的输出。另外,如果您想添加更多字段,只需在 SQL SELECT
语句中添加字段名称即可。
QueryRecord 处理器允许您对 FlowFile 内容执行 SQL 查询。有关此处理器的更多详细信息,请参见 here
附上截图