如何通过Jolt移除嵌套JSON中dummy_var5内的空JSON对象
使用Jolt移除JSON数组中的空对象
我的JSON结构固定,其中dummy_var5数组内包含一个空JSON对象{},尝试用AtlasMap工具无法移除该空对象,请问能否通过Jolt实现移除操作?
原始JSON
{"dummy_var1": "abc","dummy_var2": [{"item": {"action": "test","po": {"id": "abc"},"ot": "test1","id": "1"}}],"dummy_var3": {"dummy_var4": [{"name": "test","value": "test1"},{"name": "test","value": "test1"}],"name": "test2"},"dummy_var5": [{"ref": "test","name": "test1","type": null},{}],"dummy_var6": [{"role": "test","ref": "test1","partyDescription": "test2"}]}
期望输出JSON
{"dummy_var1": "abc","dummy_var2": [{"item": {"action": "test","po": {"id": "abc"},"ot": "test1","id": "1"}}],"dummy_var3": {"dummy_var4": [{"name": "test","value": "test1"},{"name": "test","value": "test1"}],"name": "test2"},"dummy_var5": [{"ref": "test","name": "test1","type": null}],"dummy_var6": [{"role": "test","ref": "test1","partyDescription": "test2"}]}
Jolt转换方案
可以通过Jolt的modify-overwrite-beta操作结合过滤函数实现,具体转换规则如下:
[ { "operation": "modify-overwrite-beta", "spec": { "dummy_var5": "=filter(@, & != {})" } } ]
规则说明
modify-overwrite-beta:用于修改指定字段的值,支持调用内置函数处理数据=filter(@, & != {}):对dummy_var5数组执行过滤,保留所有不等于空对象{}的元素,直接移除空对象条目
将上述规则应用到原始JSON后,即可得到期望的输出结果。
内容的提问来源于stack exchange,提问作者Kritika Tiwari
相关产品推荐
相关产品推荐

