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

如何用Jolt拆分URL并提取指定片段生成目标JSON结构?

Jolt转换配置修正方案

输入JSON

{  
  "mobility-search-featureList": [    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-options?mobile-number=8877887788&appPatternFeatureId=3581"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-rmn?mobile-number=8877887788&appPatternFeatureId=3582"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-email?mobile-number=8877887788&appPatternFeatureId=3864"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-sr?mobile-number=8877887788&appPatternFeatureId=3865"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-order?mobile-number=8877887788&appPatternFeatureId=3866"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-disconnected-customer?mobile-number=8877887788&appPatternFeatureId=3867"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-customer-id?mobile-number=8877887788&appPatternFeatureId=3868"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-customer-number?mobile-number=8877887788&appPatternFeatureId=3869"    
    }  
  ]
}

期望输出JSON

提取每个mobility-search-featureList-url中问号前的最后一段作为name字段,同时保留原URL:

{  
  "mobility-search-featureList": [    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-options?mobile-number=8877887788&appPatternFeatureId=3581",      
      "name": "search-options"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-rmn?mobile-number=8877887788&appPatternFeatureId=3582",      
      "name": "search-rmn"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-email?mobile-number=8877887788&appPatternFeatureId=3864",      
      "name": "search-email"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-sr?mobile-number=8877887788&appPatternFeatureId=3865",      
      "name": "search-sr"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-order?mobile-number=8877887788&appPatternFeatureId=3866",      
      "name": "search-order"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-disconnected-customer?mobile-number=8877887788&appPatternFeatureId=3867",      
      "name": "search-disconnected-customer"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-customer-id?mobile-number=8877887788&appPatternFeatureId=3868",      
      "name": "search-customer-id"    
    },    
    {      
      "mobility-search-featureList-url": "/epsp-pattern/search/search-customer-number?mobile-number=8877887788&appPatternFeatureId=3869",      
      "name": "search-customer-number"    
    }  
  ]
}

当前使用的错误转换规则

[  
  {    
    "operation": "modify-overwrite-beta",    
    "spec": {      
      "name": {        
        "*": {          
          "mobility-search-featureList-url": "=split('/', @(1))"        
        }      
      }    
    }  
  },  
  {    
    "operation": "modify-overwrite-beta",    
    "spec": {      
      "name": {        
        "\*": "=lastElement(@(1))"      
      }    
    }  
  },  
  {    
    "operation": "shift",    
    "spec": {      
      "name": "name"    
    }  
  }
]

正确的Jolt转换配置

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "mobility-search-featureList": {
        "*": {
          // 先按?拆分,提取问号前的路径部分
          "urlPart": "=split('\\?', @(1,mobility-search-featureList-url))[0]",
          // 再按/拆分路径,取最后一段作为name
          "name": "=lastElement(split('/', @(1,urlPart)))"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "mobility-search-featureList": {
        "*": {
          "mobility-search-featureList-url": "mobility-search-featureList[&1].mobility-search-featureList-url",
          "name": "mobility-search-featureList[&1].name"
        }
      }
    }
  }
]

配置说明

  1. modify-overwrite-beta 操作:遍历目标数组的每个元素,先拆分URL过滤掉问号后的参数,再从纯路径中提取最后一段作为name字段。
  2. shift 操作:将原URL和生成的name字段映射回原数组结构,确保输出格式与预期一致。

原错误配置问题:

  • 未正确定位到mobility-search-featureList数组节点,错误操作了不存在的name节点;
  • 拆分逻辑未处理问号后的参数,导致提取内容包含多余部分;
  • 最终的shift操作无法还原原数组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:26:00