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

如何编写Jolt转换规范以遍历多数组并实现指定输出?

Jolt转换实现方案

输入JSON

{
  "a": [
    [
      "a1"
    ],
    [
      "a2"
    ]
  ],
  "b": [
    [
      "b1",
      "b2"
    ],
    [
      "b3",
      "b4"
    ]
  ],
  "c": [
    [
      "c1"
    ],
    [
      "c2"
    ]
  ]
}

期望输出JSON

[
  {
    "a": "a1",
    "b": "b1",
    "c": "c1"
  },
  {
    "a": "a1",
    "b": "b2"
  },
  {
    "a": "a2",
    "b": "b3",
    "c": "c2"
  },
  {
    "a": "a2",
    "b": "b4"
  }
]

实现的Jolt转换规则

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": {
            "@": "[&2-&1].&3"
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "c": {
          "$null": ""
        }
      }
    }
  }
]

规则逻辑说明

  • Shift操作阶段:利用Jolt的索引引用,&2代表最外层数组的索引(比如a的第一个子数组索引为0,第二个为1),&1代表内层数组的索引(比如b的第一个子数组内层索引为0、1),将两者拼接成最终数组的位置键[&2-&1],这样就能把同组的字段(如a[0][0]、b[0][0]、c[0][0])映射到同一个对象中;&3则取最外层的键名(a、b、c)作为输出对象的键。
  • Remove操作阶段:由于c数组的每个子数组仅含一个元素,转换后会出现null值的c字段,通过该操作移除这些无效的null字段,得到最终的目标输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:20:31