优化JOLT配置:提取BidModifiers中的Type与Adjustment字段
优化JOLT配置提取指定字段
输入JSON数据
{ "result":{ "BidModifiers":[ { "AdGroupId":5462325568, "Level":"AD_GROUP", "Type":"DESKTOP_ADJUSTMENT", "DesktopAdjustment":{ "BidModifier":0 } }, { "AdGroupId":5462325568, "Level":"AD_GROUP", "Type":"SMART_TV_ADJUSTMENT", "SmartTvAdjustment":{ "BidModifier":200, "Age":[ 18, 19, 20, 21 ] } }, { "AdGroupId":5462325568, "Level":"AD_GROUP", "Type":"RETARGETING_ADJUSTMENT", "RetargetingAdjustment":{ "RetargetingConditionId":540 } } ] } }
需求
从BidModifiers数组中提取每个元素的Type字段,以及对应的以Adjustment结尾的键值对,最终得到如下结构的数组:
[ { "Type":"DESKTOP_ADJUSTMENT", "DesktopAdjustment":{ "BidModifier":0 } }, { "Type":"SMART_TV_ADJUSTMENT", "SmartTvAdjustment":{ "BidModifier":200, "Age":[ 18, 19, 20, 21 ] } }, { "Type":"RETARGETING_ADJUSTMENT", "RetargetingAdjustment":{ "RetargetingConditionId":540 } } ]
原JOLT配置问题
原配置中对*Adjustment的处理错误,它尝试将子字段拆解展开到外层,导致目标结构混乱,无法保留完整的Adjustment对象。
优化后的JOLT配置
[ { "operation": "shift", "spec": { "result": { "BidModifiers": { "*": { "Type": "[&1].Type", "*Adjustment": "[&1].&" } } } } } ]
配置说明
[&1]指代当前数组元素的索引,确保每个元素的Type和对应的Adjustment对象被映射到同一个数组项中*Adjustment直接匹配所有以Adjustment结尾的键,&表示保留原键名,同时将整个键值对完整映射到目标位置,避免了原配置中拆解子字段的错误
内容的提问来源于stack exchange,提问作者takotsubo
相关产品推荐
相关产品推荐

