如何通过JOLT Remove操作处理嵌套JSON:保留指定元素与数组项
JOLT转换:保留LEVEL_4数组前2项并移除指定冗余字段
需求:对嵌套JSON执行JOLT转换,需完成两个核心操作:
- 固定保留
LEVEL_4数组的前2项(无论输入数组长度为4、5或6) - 移除
FIELD_3、FIELD_5及其他指定冗余字段
输入JSON
{ "LEVEL_0": { "RANDOM_FIELD_A": "1234", "LEVEL_1": { "RANDOM_FIELD_B": null, "RANDOM_FIELD_C": "DEEZ", "LEVEL_2": { "RANDOM_FIELD_D": "12345", "RANDOM_FIELD_E": "CHUPAPI", "LEVEL_3A": { "RANDOM_FIELD_F": 800 }, "RANDOM_FIELD_G": null, "LEVEL_3B": [ { "RANDOM_FIELD_H": "12345671", "RANDOM_FIELD_I": "DONUT", "LEVEL_4": [ { "FIELD_1": "CRISPY", "FIELD_2": "CREME", "FIELD_3": "CHEESE", "FIELD_4": "CAKE", "FIELD_5": 123456789, "FIELD_6": "COCONUT" }, { "FIELD_1": "UNCLE", "FIELD_2": "BENS", "FIELD_3": "FIRED", "FIELD_4": "RICE", "FIELD_5": 987654321, "FIELD_6": "FLAMINGO" }, { "FIELD_1": "IN", "FIELD_2": "THE", "FIELD_3": "JUNGLE", "FIELD_4": "THE", "FIELD_5": 345453643, "FIELD_6": "MIGHTY" }, { "FIELD_1": "THIS", "FIELD_2": "IS", "FIELD_3": "THE", "FIELD_4": "LAST", "FIELD_5": 344, "FIELD_6": "ONE" } ] } ] } } } }
期望输出JSON
{ "LEVEL_0": { "RANDOM_FIELD_A": "1234", "LEVEL_1": { "RANDOM_FIELD_C": "DEEZ", "LEVEL_2": { "RANDOM_FIELD_E": "CHUPAPI", "LEVEL_3A": { "RANDOM_FIELD_F": 800 }, "RANDOM_FIELD_G": null, "LEVEL_3B": [ { "RANDOM_FIELD_I": "DONUT", "LEVEL_4": [ { "FIELD_1": "CRISPY", "FIELD_2": "CREME", "FIELD_4": "CAKE", "FIELD_6": "COCONUT" }, { "FIELD_1": "UNCLE", "FIELD_2": "BENS", "FIELD_4": "RICE", "FIELD_6": "FLAMINGO" } ] } ] } } } }
现有JOLT规则(已实现部分字段移除)
[ { "operation": "remove", "spec": { "LEVEL_0": { "LEVEL_1": { "RANDOM_FIELD_B": "", "LEVEL_2": { "RANDOM_FIELD_D": "", "LEVEL_3B": { "*": { "RANDOM_FIELD_H": "", "LEVEL_4": { "*": { "FIELD_3": "", "FIELD_5": "" } } } } } } } } } ]
完整JOLT Remove操作规则
要实现数组项的删减,需在现有规则基础上,针对LEVEL_4数组中索引≥2的元素添加移除规则(JOLT中数组索引从0开始)。完整规则如下:
[ { "operation": "remove", "spec": { "LEVEL_0": { "LEVEL_1": { "RANDOM_FIELD_B": "", "LEVEL_2": { "RANDOM_FIELD_D": "", "LEVEL_3B": { "*": { "RANDOM_FIELD_H": "", "LEVEL_4": { // 移除LEVEL_4数组中索引≥2的所有元素,覆盖长度4-6的情况 "2": "", "3": "", "4": "", "5": "", // 移除每个元素内的FIELD_3和FIELD_5 "*": { "FIELD_3": "", "FIELD_5": "" } } } } } } } } } ]
规则说明
- 针对
LEVEL_4数组,明确指定移除索引为2、3、4、5的元素,确保只保留前2项(索引0和1) - 保留原有字段移除规则,继续清理
FIELD_3、FIELD_5及其他冗余字段
内容的提问来源于stack exchange,提问作者Aziz R.
相关产品推荐
相关产品推荐

