如何在Jolt中将字符串"{}"转换为JSON空字典{}?
Jolt转换方案:将字符串"{}"转为空字典{}
输入JSON
{ "age": [ { "r": "r1", "d": "{}" } ] }
期望输出JSON
{ "age": [ { "r": "r1", "d": {} } ] }
可行的Jolt规范
使用modify-overwrite-beta操作结合条件判断即可实现目标转换,具体规范如下:
[ { "operation": "modify-overwrite-beta", "spec": { "age": { "*": { "d": ["equals", "{}", "=()", "@(1,d)"] } } } } ]
规范说明
age: 定位到根节点下的age数组字段*: 匹配数组中的每一个元素(适配数组内多个对象的场景)d字段的三元逻辑:- 用
equals判断当前d的值是否为字符串"{}" - 匹配成功时,用
=()生成空字典{} - 不匹配时,保留
d字段的原始值@(1,d)(@(1,d)表示引用当前层级向上一级的d字段值)
- 用
之前单独用modify-overwrite-beta没成功,大概率是没结合条件判断和=()函数——直接赋值无法将字符串转为字典,必须通过=()显式生成空对象,同时用条件逻辑精准替换目标值。
内容的提问来源于stack exchange,提问作者Kapil K
相关产品推荐
相关产品推荐

