基于JOLT实现JSON字段添加、键重命名及数值格式化处理
JOLT配置调整需求
此问题为Stack Overflow相关问题的续问,需基于现有JOLT配置完成以下修改,以生成符合要求的输出JSON:
- 为输出的每个JSON对象添加
StartTime字段 - 将
distance_3重命名为X_Z_distance,distance_4重命名为Y_Z_distance - 将
Temp_1的值四舍五入保留两位小数
输入JSON
[ [ { "Name": "03.04.2023", "StartTime": "2023-04-03 06:32", "SessionData": [ { "LocationX": "36.282466", "LocationY": "-5.298164", "DataValue": "0.36", "DataType": "distance_1" }, { "LocationX": "36.282466", "LocationY": "-5.298164", "DataValue": "11.0", "DataType": "distance_2" }, { "LocationX": "36.282466", "LocationY": "-5.298164", "DataValue": "2231", "DataType": "distance_3" }, { "LocationX": "36.282466", "LocationY": "-5.298164", "DataValue": "0.04", "DataType": "distance_4" }, { "LocationX": "36.282466", "LocationY": "-5.298164", "DataValue": "58.82", "DataType": "distance_5" }, { "LocationX": "36.278355", "LocationY": "-5.290660", "DataValue": "0.00", "DataType": "distance_1" }, { "LocationX": "36.278355", "LocationY": "-5.290660", "DataValue": "9.8", "DataType": "distance_2" }, { "LocationX": "36.278355", "LocationY": "-5.290660", "DataValue": "2206", "DataType": "distance_3" }, { "LocationX": "36.278355", "LocationY": "-5.290660", "DataValue": "0.00", "DataType": "distance_4" }, { "LocationX": "36.278355", "LocationY": "-5.290660", "DataValue": "58.28", "DataType": "distance_5" } ] } ] ]
期望输出JSON
[ { "StartTime": "2023-04-03 06:32", "distance_1": "0.36", "LocationX": "36.282466", "LocationY": "-5.298164", "distance_2": "11.0", "X_Z_distance": "2231", "Y_Z_distance": "0.04", "Temp_1": 2189, "Distance_Type": "D", "Distance_Length": "M" }, { "StartTime": "2023-04-03 06:32", "distance_1": "0.00", "LocationX": "36.278355", "LocationY": "-5.290660", "distance_2": "9.8", "X_Z_distance": "2206", "Y_Z_distance": "0.00", "Temp_1": 2164, "Distance_Type": "D", "Distance_Length": "M" } ]
现有JOLT配置
[ { "operation": "shift", "spec": { "*": { "*": { "*": { "*": { "Location*": "@(1,LocationX).@(1,LocationY).&", "@DataValue": "@(1,LocationX).@(1,LocationY).@DataType" } } } } } }, { "operation": "modify-overwrite-beta", "spec": { "*": { "*": { "Temp_1": "=doubleSum(@(1,distance_3),-42)" } } } }, { "operation": "default", "spec": { "*": { "*": { "Distance_Length": "M", "Distance_Type": "D" } } } }, { "operation": "cardinality", "spec": { "*": { "*": { "*": "ONE" } } } }, { "operation": "shift", "spec": { "*": { "*": "[]" } } }, { "operation": "remove", "spec": { "*": { "distance_5": "" } } } ]
内容的提问来源于stack exchange,提问作者casper
相关产品推荐
相关产品推荐

