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

求助编写Jolt转换规则:将嵌套JSON展开为扁平对象

Jolt转换规则:将嵌套JSON扁平化为指定结构

需要将嵌套的JSON输入转换为扁平结构的输出,以下是输入、期望输出以及对应的Jolt转换规则:

输入JSON

[
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "usageByLicenseAndProduct": [
      {
        "productType": "VSPC",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          },
          {
            "workloadType": "VAC_Server_Agent"
          }
        ]
      }
    ]
  },
  {
    "organizationName": "TOTOLAND2",
    "organizationUid": "456789",
    "usageByLicenseAndProduct": [
      {
        "productType": "VSPC",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          }
        ]
      },
      {
        "productType": "BackupAndReplication",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          }
        ]
      }
    ]
  }
]

期望输出JSON

[
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Workstation_Agent"
  },
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Server_Agent"
  },
  {
    "organizationName": "TOTOLAND2",
    "organizationUid": "456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Workstation_Agent"
  }
]

Jolt转换规则

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "usageByLicenseAndProduct": {
          "*": {
            "workloadUsage": {
              "*": {
                "@(3,organizationName)": "[&1].organizationName",
                "@(3,organizationUid)": "[&1].organizationUid",
                "@(2,productType)": "[&1].productType",
                "@(2,licenseEdition)": "[&1].licenseEdition",
                "workloadType": "[&1].workloadType"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "": ""
      }
    }
  }
]

规则说明

  • shift操作:这是核心转换步骤,用来拆解嵌套结构:
    • 每层的*用来遍历对应数组里的所有元素,比如顶层的组织、每个组织下的许可证条目、每个条目下的工作负载
    • @(n,key)表示从当前层级向上数n层,提取对应key的数值,比如@(3,organizationName)就是从当前工作负载条目往上找3层,拿到所属的组织名称
    • [&1]会根据当前工作负载的数组索引,生成输出数组里的对应位置,保证每个工作负载都能变成独立的扁平对象
  • remove操作:清理转换过程中可能产生的空对象,让输出结构更整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:15:00