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

JOLT Shift转换求助:多层Item提取与属性整理结果异常

JOLT Shift转换方案:提取嵌套item的独立属性数组

你当前的spec使用相对索引([&1]、[&2])时,不同层级的item会命中同一个数组位置,导致多个item的ac和nn被合并到同一个对象中。解决思路是先递归收集所有层级的item到一个数组,再提取每个item的目标字段,确保每个item对应独立的数组元素。

正确的JOLT转换Spec

[
  // 第一步:递归收集所有层级的item到数组,先处理子item再处理父item,保证顺序符合预期
  {
    "operation": "shift",
    "spec": {
      "item": {
        "*": {
          // 优先处理嵌套的子item
          "item": {
            "*": {
              "@": "[]",
              // 递归处理更深层级的item
              "item": "&2"
            }
          },
          // 再处理当前层级的item
          "@": "[]"
        }
      }
    }
  },
  // 第二步:提取每个item中的ac和foo.nn字段
  {
    "operation": "shift",
    "spec": {
      "*": {
        "ac": "[&1].ac",
        "foo": {
          "nn": "[&2].foo.nn"
        }
      }
    }
  }
]

方案说明

  1. 第一步Shift操作:
    • 递归遍历所有嵌套的item数组,先处理子级item再处理父级item,确保输出顺序匹配你的预期
    • 使用"@": "[]"将每个item对象追加到数组中,&2表示递归调用当前item的处理逻辑,支持任意深度的嵌套item
  2. 第二步Shift操作:
    • 遍历第一步生成的数组,提取每个元素的ac字段,以及foo下的nn字段,组装成目标结构

验证结果

该Spec会生成与你预期完全一致的输出,每个item的属性独立成为数组中的一个元素,不会出现字段合并的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:10:34