如何在NiFi中使用JOLTTransforms实现指定JSON格式转换?
JOLT JSON转换实现方案
输入JSON
[ { "ExchangeCurrency": "INR", "FExchangeCurrency": "AUD", "ExchangeRate": 123, "ExchangeDate2": "2023-05-01" }, { "ExchangeCurrency": "INR", "FExchangeCurrency": "CHF", "ExchangeRate": 234, "ExchangeDate2": "2023-05-01" }, { "ExchangeCurrency": "INR", "FExchangeCurrency": "EUR", "ExchangeRate": 456, "ExchangeDate2": "2023-05-01" } ]
预期输出JSON
{ "ExchangeCurrency" : "INR", "ExchangeDate2" : "2023-05-01", "AUD_ExchangeRate" : 123, "CHF_ExchangeRate" : 234, "EUR_ExchangeRate" : 456 }
JOLT转换规则
[ { "operation": "shift", "spec": { "*": { "ExchangeCurrency": "ExchangeCurrency", "ExchangeDate2": "ExchangeDate2", "ExchangeRate": "@(1,FExchangeCurrency)_ExchangeRate" } } }, { "operation": "sort", "spec": { "ExchangeCurrency": 1, "ExchangeDate2": 2, "*_ExchangeRate": 3 } } ]
规则说明
- Shift操作:遍历输入数组的每个元素,提取统一的
ExchangeCurrency和ExchangeDate2字段;将每个元素的ExchangeRate值映射到[FExchangeCurrency值]_ExchangeRate格式的键名下。 - Sort操作:指定字段排序优先级,确保
ExchangeCurrency、ExchangeDate2排在最前,所有汇率相关字段紧随其后,满足输出顺序要求。
内容的提问来源于stack exchange,提问作者pandu
相关产品推荐
相关产品推荐

