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

求助:基于属性值关联的JOLT JSON格式转换实现

使用JOLT实现JSON关联转换解决方案

需求:将输入JSON按照「第一个数组元素的deps.name与第二个数组元素的spec.name匹配」的规则转换为指定输出格式。

输入JSON

[
  {
    "key": "Primary",
    "metadata": {
      "name": "35f8d9fac891"
    },
    "deps": [
      {
        "name": "e6ae6d29edf8"
      }
    ],
    "spec": {
      "vattr1": "vval1",
      "vattr2": "vval2"
    }
  },
  {
    "key": "Secondary",
    "metadata": {
      "name": "hp74z"
    },
    "spec": {
      "name": "e6ae6d29edf8",
      "nattr1": "nval1",
      "nattr2": "nval2",
      "deps": {
        "Name": "5505da219463"
      }
    }
  }
]

期望输出JSON

{
  "key": "Primary",
  "metadata": {
    "name": "35f8d9fac891"
  },
  "deps": [
    {
      "name": {
        "key": "Secondary",
        "metadata": {
          "name": "hp74z"
        },
        "spec": {
          "name": "e6ae6d29edf8",
          "nattr1": "nval1",
          "nattr2": "nval2",
          "deps": {
            "Name": "5505da219463"
          }
        }
      }
    }
  ],
  "spec": {
    "vattr1": "vval1",
    "vattr2": "vval2"
  }
}

JOLT转换规范

[
  {
    "operation": "shift",
    "spec": {
      "1": {
        "@": "lookup.@spec.name"
      },
      "0": {
        "*": "&",
        "deps": {
          "*": {
            "name": "deps[&1].nameKey"
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "deps": {
        "*": {
          "name": "@(2,lookup.@(1,nameKey))"
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": [
      "lookup",
      "deps[*].nameKey"
    ]
  }
]

逻辑说明

  1. 第一步shift:构建临时lookup映射表,将Secondary对象以其spec.name为索引存储;同时保留Primary的基础字段,把原deps.name的值暂存为nameKey。
  2. 第二步modify-overwrite-beta:通过nameKey到lookup中匹配对应的Secondary对象,替换Primary里deps数组中的name字段值。
  3. 第三步remove:清理临时生成的lookup和nameKey字段,得到最终输出结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:57:36