You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jolt实现JSON转换时Response属性未填充到Items数组求助

问题原因

你编写的Jolt规则存在几处路径引用错误,直接导致Response节点下的属性无法正确填充到输出结果:

  • 遍历Items数组元素时使用@GrNumber取值,仅会在当前遍历的Item对象范围内查找对应字段,根本读不到外层Response节点下的属性
  • 给Response下GrNumber字段配置的映射路径为Items.GrNumber,会把该字段挂载为Items数组的同级属性,没法注入到数组内的每个子对象中
  • 数组路径写法不统一,混用Items.[&1]和Items[&1]两种格式,容易触发路径匹配异常
可直接使用的Jolt转换规则
[
  {
    "operation": "shift",
    "spec": {
      "RegDate": "RegDate",
      "Items": {
        "*": {
          "LineItem": "Items[&1].LineItem",
          "PoNumber": "Items[&1].PoNumber",
          "PoItem": "Items[&1].PoItem",
          "@(2,Response.GrNumber)": "Items[&1].GrNumber",
          "@(2,Response.GrYear)": "Items[&1].GrYear"
        }
      }
    }
  }
]
规则说明
  • 遍历Items数组时,使用@(回溯层级, 目标路径)语法向上回溯2层到达根节点,直接读取Response节点下的公共字段,注入到当前遍历到的数组子对象中,不需要单独为Response节点编写映射逻辑
  • 统一使用Items[&1].字段名的标准数组路径写法,避免多余的点号导致路径解析错误
  • 规则执行后会自动将GrNumber、GrYear两个字段追加到Items数组的每一个子对象下,如果你需要调整输出字段(比如移除部分元素的LineItem),只需要删除对应字段的映射行即可。

内容的提问来源于stack exchange,提问作者Athar Iqbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:24:16