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

如何在JOLT v.0.1.1中为每个JSON元素添加指定键值对?

JOLT转换添加ParentCaseID的解决方案

需求说明

需要将指定输入JSON通过JOLT v0.1.1转换为包含ParentCaseID字段的数组输出,当前使用的JOLT规则无法生成该字段。

输入JSON

{
  "entityType": "job",
  "id": 908815,
  "properties": {
    "AvatureID": 908815,
    "TemplateName": [
      "jicofo package",
      "jitsi meet fork",
      "jitsi-videobridge2 package"
    ],
    "CaseType": [
      "Internal project",
      "Internal project",
      "Internal project"
    ],
    "ProjectType": [
      "Cloud Services",
      "Development",
      "Cloud Services"
    ],
    "Team": [
      "Cloud Operations",
      "Video",
      "Cloud Operations"
    ],
    "Category": [
      "Routine Ops",
      "Platform enhancement",
      "Routine Ops"
    ],
    "WorkflowStepID": [
      "579",
      "531",
      "579"
    ]
  }
}

预期输出

[
  {
    "ParentCaseID": 908815,
    "TemplateName": "jicofo package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  },
  {
    "ParentCaseID": 908815,
    "TemplateName": "jitsi meet fork",
    "CaseType": "Internal project",
    "ProjectType": "Development",
    "Team": "Video",
    "Category": "Platform enhancement",
    "WorkflowStepID": "531"
  },
  {
    "ParentCaseID": 908815,
    "TemplateName": "jitsi-videobridge2 package",
    "CaseType": "Internal project",
    "ProjectType": "Cloud Services",
    "Team": "Cloud Operations",
    "Category": "Routine Ops",
    "WorkflowStepID": "579"
  }
]

当前JOLT规则及问题

当前规则可生成数组中其他字段,但缺少ParentCaseID:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "TemplateName": {
          "*": {
            "@": "[&1].TemplateName"
          }
        },
        "CaseType": {
          "*": {
            "@": "[&1].CaseType"
          }
        },
        "ProjectType": {
          "*": {
            "@": "[&1].ProjectType"
          }
        },
        "Team": {
          "*": {
            "@": "[&1].Team"
          }
        },
        "Category": {
          "*": {
            "@": "[&1].Category"
          }
        },
        "WorkflowStepID": {
          "*": {
            "@": "[&1].WorkflowStepID"
          }
        }
      }
    }
  }
]

修改后的JOLT规则

在shift操作的spec中,添加对根节点id字段的引用,为数组每个元素复制该值作为ParentCaseID:

[
  {
    "operation": "shift",
    "spec": {
      "id": {
        "@": "[#2].ParentCaseID"
      },
      "properties": {
        "TemplateName": {
          "*": {
            "@": "[&1].TemplateName"
          }
        },
        "CaseType": {
          "*": {
            "@": "[&1].CaseType"
          }
        },
        "ProjectType": {
          "*": {
            "@": "[&1].ProjectType"
          }
        },
        "Team": {
          "*": {
            "@": "[&1].Team"
          }
        },
        "Category": {
          "*": {
            "@": "[&1].Category"
          }
        },
        "WorkflowStepID": {
          "*": {
            "@": "[&1].WorkflowStepID"
          }
        }
      }
    }
  }
]

规则说明

  • id字段处理:通过@引用当前id的值,[#2]表示将值赋值给数组的所有元素(数组长度由其他字段的索引自动匹配),确保每个元素都带有ParentCaseID字段。
  • 保留原有对properties下各数组字段的处理逻辑,保证其他字段正常映射。

修改后,转换结果将完全匹配预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:44:56