如何使用JOLT从JSON数组中匹配指定name值提取对应email地址
正确的JOLT转换规则
你可以使用如下shift操作的转换规则实现需求:
[ { "operation": "shift", "spec": { "customer": { "*": { "name": { "username": { "@(2,value)": "email" } } } } } } ]
规则逻辑说明
- 第一层匹配根节点下的
customer数组 - 用
*遍历数组内的所有对象元素 - 匹配每个元素的
name字段值 - 当
name值等于username时,通过@(2,value)向上回溯2层父节点,拿到当前元素的value字段值,将其赋值给输出根节点的email字段
原规则问题说明
你之前编写的规则错误在于赋值方向颠倒:JOLT的shift规则中,键是要匹配的输入结构/值,值是输出的目标路径,你把输出路径和要提取的输入值的位置写反了。
内容的提问来源于stack exchange,提问作者AMUK786
相关产品推荐
相关产品推荐

