如何通过JOLT操作根据指定键过滤JSON并提取对应值?
JOLT实现按指定字段提取值
输入JSON
{ "input": { "a": "valueA", "b": "valueB", "c": "valueC" }, "fieldsToFilterBy": [ "a", "c" ] }
期望输出JSON
{ "input": { "a": "valueA", "b": "valueB", "c": "valueC" }, "filteredValues": [ "valueA", "valueC" ] }
JOLT转换规则
可以通过以下JOLT规格实现需求:
[ { "operation": "shift", "spec": { "input": "input", "fieldsToFilterBy": { "*": { "@(2,input.&)": "filteredValues[]" } } } } ]
规则说明
shift操作用于重新组织JSON结构"input": "input"直接保留原有的input对象,不做修改"fieldsToFilterBy"下的"*"表示遍历数组中的每一个元素@(2,input.&)是JOLT路径引用:2表示向上回溯2层,回到根节点层级&代表当前遍历到的数组元素(即a、c),最终取input.a和input.c的值"filteredValues[]"将这些值依次存入目标数组
内容的提问来源于stack exchange,提问作者poezii siflori
相关产品推荐
相关产品推荐

