如何用Jolt将嵌套空字典转换为Null值?
用Jolt将嵌套的{"null":null}转换为直接null值
输入JSON
{"key1":{"null":null},"key2":123}
目标JSON
{"key1": null,"key2":123}
原规则问题分析
你之前的Shift规则同时定义了两个匹配逻辑:"null": "&1" 和 "@": "&",这会让key1既捕获到内部的null值,又保留原嵌套对象,最终导致key1的值变成数组形式。
正确Jolt配置
可以用Shift操作直接提取子对象中null键对应的值,覆盖父键的原有值,同时保留其他正常键的结构:
简洁版规则(仅处理{"null":null}场景)
[ { "operation": "shift", "spec": { "*": { "@null": "&1" } } } ]
通用版规则(兼容其他子键场景)
如果实际数据中还有其他子键需要保留结构,用这个规则:
[ { "operation": "shift", "spec": { "*": { "null": "&1", "*": "&1.&" } } } ]
验证结果
用上述规则处理输入JSON后,会得到目标结果:
{"key1": null,"key2":123}
内容的提问来源于stack exchange,提问作者Voxeldoodle
相关产品推荐
相关产品推荐

