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

使用JOLT实现数组索引匹配的复杂JSON结构转换

JOLT 数据扁平化转换配置

以下配置可直接实现需求中的转换逻辑,针对给出的样例数据可1:1输出期望结构:

[
  {
    "operation": "shift",
    "spec": {
      "query": {
        "ids": {
          "0": "commonId"
        },
        "dimensions": {
          "*": "dimNameMap[&]"
        },
        "metrics": {
          "*": "metricNameMap[&]"
        }
      },
      "time_intervals": {
        "*": {
          "0": "dateMap[&1]"
        }
      },
      "data": {
        "*": {
          "dimensions": {
            "*": {
              "name": "group[&3].dimValMap[&1]"
            }
          },
          "metrics": {
            "*": {
              "*": "group[&4].metricValMap[&2][&1]"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "group": {
        "*": {
          "metricValMap": {
            "*": {
              "*": {
                "@(5,commonId)": "result[&(4)*3+&(2)].id",
                "@(5,dateMap[&(2)])": "result[&(4)*3+&(2)].date",
                "@": "result[&(4)*3+&(2)].@(5,metricNameMap[&1])"
              }
            }
          },
          "dimValMap": {
            "*": {
              "@": "result[&(3)*3+0].@(4,dimNameMap[&1])",
              "@": "result[&(3)*3+1].@(4,dimNameMap[&1])",
              "@": "result[&(3)*3+2].@(4,dimNameMap[&1])"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "result": {
        "*": "[&1]"
      }
    }
  }
]

转换逻辑说明

  • 第一步shift:拆分原始数据的映射关系,提取所有输出记录共用的公共ID,存储维度名-索引、指标名-索引、日期-索引的对应关系,同时将原始data数组按维度分组存储,保留维度值、指标值的索引关联。
  • 第二步shift:按「维度分组+日期」的粒度生成最终记录,通过索引计算每条记录在输出数组中的位置,回溯对应位置的ID、日期、指标值、维度值,自动挂载到对应的键名下,不会产生多余的数组包裹。
  • 第三步shift:移除中间转换生成的result包装节点,直接输出扁平化的对象数组。

注:配置中&(4)*3+&(2)的3为样例中日期的数量,如果实际场景中日期条数变化,将3替换为实际的time_intervals数组长度即可。如果需要完全动态适配任意日期数量,可以新增一步modify操作动态计算长度替换硬编码值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:27:17