如何通过JOLT转换定位JSON数组中指定语言对应的街道值
JOLT转换:筛选language为GB的街道条目并提取对应值
需求说明
需要从包含多语言街道信息的输入JSON中,筛选出language字段等于GB的条目,并提取对应的appcuststreet值,转换为指定的目标JSON结构。
输入JSON
{ "APPCUSTDetails": [ { "appcuststreetList": { "appcuststreet": [ { "appcuststreet": "Some Street in EN", "language": "GB" }, { "appcuststreet": "Some Street LN", "language": "LN" } ] } } ] }
目标输出JSON
{ "payload": { "address": { "street": "Some Street in EN" } } }
JOLT转换规则
[ { "operation": "shift", "spec": { "APPCUSTDetails": { "*": { "appcuststreetList": { "appcuststreet": { "*": { "language": { "GB": { "@(2,appcuststreet)": "payload.address.street" } } } } } } } } } ]
规则解释
- 逐层遍历输入的嵌套结构:先遍历
APPCUSTDetails数组的所有元素,再进入appcuststreetList下的appcuststreet数组 - 对每个街道条目,检查
language字段的值:当值匹配GB时,使用@(2,appcuststreet)向上回溯两层(回到当前街道条目层级),获取对应的街道字符串 - 将提取到的街道值映射到目标结构的
payload.address.street路径,完成结构转换
内容的提问来源于stack exchange,提问作者Malaiselvan
相关产品推荐
相关产品推荐

