如何通过Jolt仅在JSON属性不存在时设置默认值?
Jolt实现仅当属性不存在时设置默认值(保留null值)
要实现仅当目标属性完全不存在时设置默认值,属性存在但值为null时保留null的逻辑,不能直接用modify-default-beta——因为它会把null值也替换成默认值。可以通过modify-overwrite-beta结合Jolt的条件函数来实现精准判断。
解决方案Spec
[ { "operation": "modify-overwrite-beta", "spec": { "lastName": "=if(exists(@(1,lastName)), @(1,lastName), '[empty]')" } } ]
逻辑说明
exists(@(1,lastName)):判断当前层级下lastName属性是否存在(不管值是null还是其他有效值)- 条件成立(属性存在):直接保留原属性值
@(1,lastName) - 条件不成立(属性不存在):设置默认值
[empty]
测试示例
输入1(无lastName属性)
{ "firstName": "John" }
输出1
{ "firstName": "John", "lastName": "[empty]" }
输入2(lastName为null)
{ "firstName": "John", "lastName": null }
输出2
{ "firstName": "John", "lastName": null }
内容的提问来源于stack exchange,提问作者vlcheong
相关产品推荐
相关产品推荐

