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

Jolt数组字符串拼接问题:无法实现预期输出求助

解决Jolt数组姓名拼接合并问题

输入JSON

[
  {
    "policy": "Name",
    "setFrstNm": "John"
  },
  {
    "setLastNm": "Jammy",
    "policy": "Name"
  },
  {
    "policy": "Name",
    "set1FrstNm": "sam"
  },
  {
    "policy": "Name",
    "set1LastNm": "jim"
  },
  {
    "policy": "Name",
    "set2FrstNm1": "jun"
  },
  {
    "set2LastNm1": "san",
    "policy": "Name"
  }
]

期望输出JSON

[
  {
    "setfullname": "John jammy",
    "policy": "Name"
  },
  {
    "set1fullname": "sam jim",
    "policy": "Name"
  },
  {
    "set2fullname": "jun san",
    "policy": "Name"
  }
]

问题分析

你之前的规则仅针对单个对象处理,无法跨对象获取同组的姓名字段,因此无法完成拼接。核心思路是先将每一组的两个对象合并,再进行字段拼接。

正确Jolt规则

[
  // 1. 将数组每两个元素归为同一分组
  {
    "operation": "shift",
    "spec": {
      "0": "group0",
      "1": "group0",
      "2": "group1",
      "3": "group1",
      "4": "group2",
      "5": "group2"
    }
  },
  // 2. 合并分组内的所有字段到同一对象
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "&1.&"
      }
    }
  },
  // 3. 拼接对应姓名字段,生成fullname
  {
    "operation": "modify-default-beta",
    "spec": {
      "group0": {
        "setfullname": "=concat(@(1,setFrstNm),' ',@(1,setLastNm))",
        "policy": "Name"
      },
      "group1": {
        "set1fullname": "=concat(@(1,set1FrstNm),' ',@(1,set1LastNm))",
        "policy": "Name"
      },
      "group2": {
        "set2fullname": "=concat(@(1,set2FrstNm1),' ',@(1,set2LastNm1))",
        "policy": "Name"
      }
    }
  },
  // 4. 删除原始的姓名字段
  {
    "operation": "remove",
    "spec": {
      "*": ["setFrstNm", "setLastNm", "set1FrstNm", "set1LastNm", "set2FrstNm1", "set2LastNm1"]
    }
  },
  // 5. 将分组转换为数组结构
  {
    "operation": "shift",
    "spec": {
      "*": "[]"
    }
  }
]

规则说明

  1. 分组:第一个shift操作把输入数组中每两个相邻对象归到同一个分组(group0/group1/group2),确保同组的姓名字段处于同一层级。
  2. 字段合并:第二个shift操作将分组内的多个对象字段合并为一个对象,让拼接时能同时获取到同组的姓和名。
  3. 姓名拼接:使用modify-default-beta的concat函数,将每组的姓名字段拼接成完整姓名,同时保留policy字段。
  4. 清理冗余:remove操作删除不再需要的原始姓名字段,精简输出结构。
  5. 转换数组:最后一个shift操作将分组对象转换为数组,匹配期望的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:42:28