JOLT转换JSON数组:字段重命名与移除配置失效问题
JOLT字段重命名+移除字段配置方案
你原有配置不生效的核心原因:通配符*会无差别匹配所有字段,既没有单独处理CATENTRY_ID的重命名逻辑,也没有对USAGE字段做排除处理,且字段映射的路径写错,会把字段放到数组根层级而非对应元素内部。
可用的简洁配置
直接使用如下shift规则即可实现需求:
[ { "operation": "shift", "spec": { "*": { "CATENTRY_ID": "[&1].ProductId", "USAGE": null, "*": "[&1].&" } } } ]
规则说明
- 第一层
*:匹配输入数组的每一个元素,&1代表当前匹配到的数组索引,保证输出数组元素顺序和输入一致 "CATENTRY_ID": "[&1].ProductId":将当前元素下的CATENTRY_ID字段值,写入输出数组对应索引元素的ProductId字段下,完成重命名"USAGE": null:匹配到USAGE字段时直接丢弃,不会出现在最终输出中"*": "[&1].&":匹配当前元素下其余未被单独规则命中的所有字段,保留原字段名写入对应索引的元素中,&代表当前匹配到的原字段名
注:你给出的期望输出示例中每个对象最后一个字段后多余的逗号属于JSON语法错误,JOLT实际输出的是标准合法JSON,不会携带该多余逗号。
内容的提问来源于stack exchange,提问作者Pawan
相关产品推荐
相关产品推荐

