如何用Jolt处理器移除JSON中所有值为null的字段?
使用Jolt移除值为null的JSON字段
当然可以!Jolt完全能帮你轻松移除所有值为null的字段,只保留有实际值的字段。这里给你两种可行的方案,你可以根据需求选择:
方案一:用shift操作直接过滤推荐
这种方式更高效,一步就能完成过滤,不需要先移除再恢复:
[ { "operation": "shift", "spec": { "*": { "?(@ != null)": "&1" } } } ]
代码解释:
*:匹配JSON中的所有顶层字段;?(@ != null):这是Jolt的条件判断语法,只处理值不为null的字段;&1:引用上层的字段名(也就是原字段名),把符合条件的字段保留到输出结果里。
方案二:先移除所有字段,再恢复非null字段
如果你更倾向于用remove操作配合其他步骤,也可以这么做:
[ // 第一步:移除所有字段 { "operation": "remove", "spec": { "*": "" } }, // 第二步:从原数据中恢复非null的字段 { "operation": "shift", "spec": { "@": { "*": { "?(@ != null)": "&1" } } } } ]
测试示例
输入JSON:
{"myValue": 345, "colorValue": null, "degreeDayValue": null, "depthValue": null, "distanceValue": null}
输出JSON:
{"myValue": 345}
如果你的JSON存在嵌套结构,只需要调整spec的层级就能处理嵌套里的null字段,比如要处理parent.child这样的嵌套字段,只需要把spec的层级对应上就行。
内容的提问来源于stack exchange,提问作者PhilG
相关产品推荐
相关产品推荐

