如何在Apache NiFi的Jolt转换处理器中解析为键值交替扁平数组
Apache NiFi Jolt转换:嵌套JSON转扁平数组
输入JSON
{ "metricname": [ "CPU1min", "MemoryFree", "MemoryUsed" ], "dataSourceName": "Standard CPU Utilization Network Cisco", "paramname": { "Standard CPU Utilization Network Cisco-3745 chassis Index0": { "values": [ [ "No Data", "No Data", "No Data", "No Data", "No Data" ], [ "No Data", "No Data", "No Data", "No Data", "No Data" ], [ "No Data", "No Data", "No Data", "No Data", "No Data" ] ] } } }
期望输出JSON
[ "metricname", [ "CPU1min", "MemoryFree", "MemoryUsed" ], "dataSourceName", "Standard CPU Utilization Network Cisco", "paramname", "Standard CPU Utilization Network Cisco-3745 chassis Index0", "values", [ "No Data", "No Data", "No Data", "No Data", "No Data" ], [ "No Data", "No Data", "No Data", "No Data", "No Data" ], [ "No Data", "No Data", "No Data", "No Data", "No Data" ] ]
Jolt转换规格
[ { "operation": "shift", "spec": { "metricname": { "$": "[0]", "@": "[1]" }, "dataSourceName": { "$": "[2]", "@": "[3]" }, "paramname": { "*": { "$": "[4]", "@(2,$)": "[5]", "values": { "$": "[6]", "*": "[#7]" } } } } } ]
规格说明
- 使用
shift操作将嵌套结构映射到扁平数组的指定索引位置 - 对
metricname和dataSourceName,直接将键名与对应值分别放入数组的对应位置 - 处理
paramname时,先提取动态键名作为数组第5项,再将values下的每个子数组依次追加到数组中
内容的提问来源于stack exchange,提问作者Sathish
相关产品推荐
相关产品推荐

