如何通过JOLT规范将JSON中的空字符串替换为null?
JOLT规范实现空字符串替换为null
需求说明
需要将JSON数据中所有层级(顶层或嵌套子对象)的空字符串值替换为null。
输入示例
{"test": "value1","test2": "","test3": "value2","test3_extra": {"test3_extra1": "","test3_extra2": "random"}}
期望输出
{"test": "value1","test2": null,"test3": "value2","test3_extra": {"test3_extra1": null,"test3_extra2": "random"}}
JOLT规范实现方案
可以使用modify-overwrite-beta操作结合递归通配符与内置函数实现,具体规范如下:
[ { "operation": "modify-overwrite-beta", "spec": { "**": ["=isNull('', @)", ""] } } ]
规范解释
modify-overwrite-beta:用于修改现有字段的值,保持原有JSON结构不变,仅替换目标值。"**":JOLT的递归通配符,会匹配JSON中所有层级的键,覆盖顶层和所有嵌套子对象的字段。=isNull('', @):JOLT内置判断函数,检查当前字段值(@指代当前值)是否为空字符串,若是则返回null,否则返回原数值;数组第二个元素""为默认 fallback 值,此处实际不会触发。
内容的提问来源于stack exchange,提问作者Katja Bürger
相关产品推荐
相关产品推荐

