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

Jolt数组展开转换:修正JSON结构映射失败问题

Jolt JSON结构转换解决方案

源JSON(Source JSON)

[
  {
    "dimensions": [
      {
        "id": "1546382552",
        "name": "BLOOM FACE MASK DAY SPA AM APOTHEKA"
      },
      {
        "id": "2024-12-01",
        "name": ""
      }
    ],
    "metrics": [
      364,
      20
    ]
  },
  {
    "dimensions": [
      {
        "id": "857640546",
        "name": "Vitamin A"
      },
      {
        "id": "2024-12-02",
        "name": ""
      }
    ],
    "metrics": [
      310,
      22
    ]
  }
]

转换规则

  • 从dimensions数组:
    1. 第一个对象的id映射为字段sku,name映射为sku_name
    2. 第二个对象的id映射为字段date
  • 从metrics数组:
    • 第一个元素映射为session_view,第二个元素映射为session_view_search

尝试的失败Jolt规范

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "dimensions": {
          "*": {
            "0": {
              "id": "[&2].sku",
              "name": "[&2].sku_name"
            },
            "1": {
              "id": "[&2].date"
            }
          }
        },
        "metrics": {
          "0": "session_view",
          "1": "session_view_search"
        }
      }
    }
  }
]

期望输出

[
  {
    "sku": 1546382552,
    "sku_name": "BLOOM FACE MASK DAY SPA AM APOTHEKA",
    "date": "2024-12-01",
    "session_view": 364,
    "session_view_search": 20
  },
  {
    "sku": 857640546,
    "sku_name": "Vitamin A",
    "date": "2024-12-02",
    "session_view": 310,
    "session_view_search": 22
  }
]

正确的Jolt规范

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "dimensions": {
          "0": {
            "id": "[&3].sku",
            "name": "[&3].sku_name"
          },
          "1": {
            "id": "[&3].date"
          }
        },
        "metrics": {
          "0": "[&2].session_view",
          "1": "[&2].session_view_search"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "sku": "=toInteger"
      }
    }
  }
]

说明

原失败规范的问题点:

  1. dimensions下错误嵌套*通配符,应直接通过索引0和1定位目标数组元素
  2. metrics部分未用[&2]关联外层数组索引,导致字段无法正确归属到对应对象
  3. 新增modify-overwrite-beta操作,将sku的字符串类型转为数字,匹配期望输出格式

内容的提问来源于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.15 16:49:57