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

如何用Jolt提取JSON中href的banner_id并生成目标对象数组?

Jolt转换解决方案:统一提取两种结构下的banner_id

以下是针对两种banners结构的Jolt转换规范,能自动适配href为数组或单个字符串的场景,提取banners/后的数字作为banner_id并生成目标对象数组:

[
  // 第一步:统一banners结构,将单个对象转为数组
  {
    "operation": "shift",
    "spec": {
      "banners": {
        "*": {
          "@": "banners[]"
        },
        "href": {
          "@2": "banners[]"
        }
      }
    }
  },
  // 第二步:从href中提取banner_id
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "banners": {
        "*": {
          "banner_id": "=split('/', @(1,href))[2]"
        }
      }
    }
  },
  // 第三步:整理为目标对象数组
  {
    "operation": "shift",
    "spec": {
      "banners": {
        "*": {
          "banner_id": "[#2].banner_id"
        }
      }
    }
  }
]

各步骤说明

  1. 统一结构:

    • 若banners是数组,直接保留每个元素到新的banners数组;
    • 若banners是单个对象,通过@2取整个banners对象并包装成数组,确保后续处理逻辑一致。
  2. 提取banner_id:

    • 用split('/', @(1,href))将href按/分割为数组(例如/banners/123分割后为['', 'banners', '123']);
    • 取索引为2的元素,即为banners/后的数字,赋值给banner_id。
  3. 整理输出:

    • 将banners数组中每个元素的banner_id提取出来,生成最终的对象数组。

测试示例

输入1(href为数组)

{
  "banners": [
    {
      "href": "/banners/123"
    },
    {
      "href": "/banners/456"
    }
  ]
}

输出1

[
  {
    "banner_id": "123"
  },
  {
    "banner_id": "456"
  }
]

输入2(href为单个字符串)

{
  "banners": {
    "href": "/banners/789"
  }
}

输出2

[
  {
    "banner_id": "789"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:40:57