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

需求:通过Jolt Transformation实现节点匹配与名称映射

Jolt 转换实现节点名称匹配需求

需求说明

  • 匹配输入中的sourceNode与nodes子数组内的node.id,匹配成功则新增sourceNodeName字段,赋值为对应node.name
  • 匹配输入中的targetNode与nodes子数组内的node.id,匹配成功则新增targetNodeName字段,赋值为对应node.name
  • 保留原有的sourceNode和targetNode字段

输入示例

{
  "nodes": [
    {
      "id": "Type:APPLICATION_COMPONENT, id:206180",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "WebFrontEnd",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206183",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "AccountManagement",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206188",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "PerLoanServices",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206182",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "PolicyServices",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206184",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "BizLoanServices",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206185",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "BalanceServices",
      "viewPermission": true,
      "agentUp": false
    },
    {
      "id": "Type:APPLICATION_COMPONENT, id:206186",
      "flowMapNodeType": "MAIN_DASHBOARD_NODE",
      "name": "SessionTracking",
      "viewPermission": true,
      "agentUp": false
    }
  ],
  "sourceNode": "Type:APPLICATION_COMPONENT, id:206183",
  "targetNode": "Type:APPLICATION_COMPONENT, id:206184"
}

期望输出

{
  "sourceNodeName" : "AccountManagement",
  "targetNodeName" : "BizLoanServices",
  "sourceNode" : "Type:APPLICATION_COMPONENT, id:206183",
  "targetNode" : "Type:APPLICATION_COMPONENT, id:206184"
}

Jolt 转换规则

[
  {
    "operation": "shift",
    "spec": {
      "nodes": {
        "*": {
          "id": "tmp.&",
          "name": "tmp.&1"
        }
      },
      "sourceNode": ["sourceNode", "sourceNodeName"],
      "targetNode": ["targetNode", "targetNodeName"]
    }
  },
  {
    "operation": "shift",
    "spec": {
      "sourceNode": "&",
      "targetNode": "&",
      "tmp": {
        "@(2,sourceNode)": "sourceNodeName",
        "@(2,targetNode)": "targetNodeName"
      }
    }
  }
]

规则说明

  1. 第一个Shift操作:

    • 将nodes数组中的每个元素转换为tmp对象下的键值对,键为id的值,值为对应的name
    • 同时保留sourceNode和targetNode的原始值,并为后续匹配预留字段占位
  2. 第二个Shift操作:

    • 保留原始的sourceNode和targetNode字段
    • 通过@(2,sourceNode)引用上层的sourceNode值,从tmp对象中取出对应名称赋值给sourceNodeName
    • 同理,通过@(2,targetNode)取出对应名称赋值给targetNodeName
    • 自动丢弃临时的tmp对象,得到最终期望结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:17:52