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

如何用Jolt Transform将Meteomatics API JSON转为表格格式?

解决Meteomatics API JSON转行列格式的Jolt配置问题

示例输入(模拟Meteomatics API响应)

{
  "dateGenerated": "2024-05-20T12:00:00Z",
  "parameters": [
    {
      "name": "temp",
      "units": "C",
      "coordinates": [
        {
          "lat": 40.7128,
          "lon": -74.0060,
          "dates": [
            {
              "date": "2024-05-20T13:00:00Z",
              "value": 22.5
            },
            {
              "date": "2024-05-20T14:00:00Z",
              "value": 23.1
            }
          ]
        },
        {
          "lat": 34.0522,
          "lon": -118.2437,
          "dates": [
            {
              "date": "2024-05-20T13:00:00Z",
              "value": 25.3
            }
          ]
        }
      ]
    }
  ]
}

期望输出(行列格式)

[
  {
    "dateGenerated": "2024-05-20T12:00:00Z",
    "parameter": "temp",
    "units": "C",
    "lat": 40.7128,
    "lon": -74.0060,
    "date": "2024-05-20T13:00:00Z",
    "value": 22.5
  },
  {
    "dateGenerated": "2024-05-20T12:00:00Z",
    "parameter": "temp",
    "units": "C",
    "lat": 40.7128,
    "lon": -74.0060,
    "date": "2024-05-20T14:00:00Z",
    "value": 23.1
  },
  {
    "dateGenerated": "2024-05-20T12:00:00Z",
    "parameter": "temp",
    "units": "C",
    "lat": 34.0522,
    "lon": -118.2437,
    "date": "2024-05-20T13:00:00Z",
    "value": 25.3
  }
]

正确的Jolt Transform配置

[
  {
    "operation": "shift",
    "spec": {
      "parameters": {
        "*": {
          "name": "[&1].parameter",
          "units": "[&1].units",
          "coordinates": {
            "*": {
              "lat": "[&3].lat",
              "lon": "[&3].lon",
              "dates": {
                "*": {
                  "@(6,dateGenerated)": "[&5].dateGenerated",
                  "@(4,parameter)": "[&5].parameter",
                  "@(4,units)": "[&5].units",
                  "@(2,lat)": "[&5].lat",
                  "@(2,lon)": "[&5].lon",
                  "date": "[&5].date",
                  "value": "[&5].value"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "0": "",
        "1": "",
        "2": ""
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[]"
      }
    }
  }
]

配置说明

  1. 第一层Shift:通过@(N,field)格式的层级引用,将上层嵌套的字段向下传递到每个日期条目:

    • @(6,dateGenerated):从dates.*节点向上遍历6层到根节点,获取全局的生成时间
    • @(4,parameter):向上遍历4层到parameters.*节点,获取参数名称(原name字段重命名为parameter)
    • @(2,lat):向上遍历2层到coordinates.*节点,获取当前坐标的纬度
    • 用[&N]索引确保每个日期条目对应独立的对象结构
  2. Remove操作:清理第一层Shift后遗留的中间层级节点,避免冗余数据

  3. 第二层Shift:将分散的对象整理为统一的数组格式,完全适配SQL数据仓库的表结构要求

验证结果

该配置会将多层嵌套的JSON完全展开为扁平的行列格式,每条记录包含dateGenerated、parameter、lat、lon等所有需要的字段,可直接用于SQL入库操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:39:26