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

如何使用JOLT映射数组:基于键值对构建多层JSON结构

JOLT转换方案

以下是实现你所需转换的JOLT规范:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "0": {
          "*": {
            "@2,1[&1]": "&.value",
            "@": "&.key"
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "keyParts": "=split('\\.', @(1,key))"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "keyParts": {
          "0": {
            "*": {
              "@2,value": "@(1)",
              "@3,keyParts[1]": {
                "^[0-9]+$": {
                  "@2,value": "@(3)[@(1)].@(3,keyParts[2])"
                },
                "*": {
                  "@2,value": "@(4).@(1).@(3,keyParts[2])"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "*": {
        "*": "ONE",
        "*[]": "MANY"
      }
    }
  }
]

转换步骤说明:

  1. 配对键值对:通过shift操作将输入中data数组的键列表和值列表按索引一一对应,生成包含key和value的对象数组。
  2. 拆分键路径:使用modify-overwrite-beta的split函数,将每个点分隔的键拆分为数组形式的路径片段。
  3. 构建嵌套结构:再次通过shift操作,根据拆分后的路径片段判断是构建对象还是数组:
    • 若路径第二层为数字(如key3.0中的0),则将对应值放入数组指定下标的对象中;
    • 若路径第二层为字符串(如key2.subkey2.1中的subkey2.1),则将对应值放入嵌套对象的指定键中;
    • 单层键直接映射为顶级键值对。
  4. 修正结构唯一性:cardinality操作确保对象键唯一、数组元素正确聚合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:58:13