Jolt v0.1.1映射问题求助:按优先级提取日期并重组JSON
Jolt 转换实现日期字段优先级保留需求
首先注意你提供的输入JSON存在语法错误,reservationList数组内的对象缺少外层大括号,修正后的输入如下:
{ "reservation": { "date": "2024-03-01", "reservationList": [ { "language": "en", "date": "2024-03-02" } ] } }
以下是满足你需求的Jolt转换规范:
[ { "operation": "shift", "spec": { "reservation": { "date": "reservation.date", "reservationList": { "[0]": { "language": "reservation.language", "date": "reservation.date" } } } } }, { "operation": "remove", "spec": { "reservation": { "reservationList": "" } } } ]
逻辑说明
- Shift 操作:
- 优先提取外层
reservation.date到目标路径,这是最高优先级的取值 - 将
reservationList[0].language提取到目标的reservation.language字段 - 最后提取
reservationList[0].date到reservation.date,由于Jolt的Shift操作中已存在的字段不会被后续同路径操作覆盖,只有当外层date缺失时,这个赋值才会生效
- 优先提取外层
- Remove 操作:移除不需要保留的
reservationList字段
测试验证
- 当外层
date存在时,输出与你期望一致:
{ "reservation": { "date": "2024-03-01", "language": "en" } }
- 当外层
date缺失时,自动使用reservationList[0].date:
{ "reservation": { "date": "2024-03-02", "language": "en" } }
- 当两者都缺失时,
date字段不会显示:
{ "reservation": { "language": "en" } }
内容的提问来源于stack exchange,提问作者user27312772
相关产品推荐
相关产品推荐

