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

Jolt:ItemDetails为数组时无法设置缺失字段默认值的问题

Jolt规则修正:为数组/对象类型的ItemDetails统一设置缺失字段默认值

输入JSON

{
  "MainObj": {
    "SubObj": {
      "Name": "John",
      "Surname": "Smith",
      "Items": [
        {
          "ItemDetails": {
            "MissingKey1": "MissingValue1" // 原规则中此字段的默认值生效
          }
        },
        {
          "ItemDetails": [
            {
              "MissingKey1": "MissingValue2" // 原规则中此字段的默认值不生效
            },
            {
              "MissingKey2": "Not available" // 原规则中此字段的默认值不生效
            }
          ]
        }
      ]
    }
  }
}

问题说明

需求为ItemDetails内的缺失字段MissingKey2设置默认值,但ItemDetails既可能是单个对象,也可能是对象数组。现有Jolt规则仅能处理ItemDetails为对象的场景,无法对数组内的元素生效。

修正后的Jolt规则

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "MainObj": {
        "SubObj": {
          "Items": {
            "*": {
              // 处理ItemDetails为单个对象的情况
              "ItemDetails": {
                "~MissingKey1": "Not available",
                "~MissingKey2": "Not available"
              },
              // 处理ItemDetails为数组的情况,遍历数组内每个元素
              "ItemDetails[]": {
                "*": {
                  "~MissingKey1": "Not available",
                  "~MissingKey2": "Not available"
                }
              }
            }
          }
        }
      }
    }
  }
]

规则说明

  1. 对象场景处理:直接针对ItemDetails对象,用~字段名语法给缺失字段设置默认值,同时覆盖原规则中仅处理MissingKey1的逻辑,新增MissingKey2的默认值配置。
  2. 数组场景处理:通过ItemDetails[]语法明确匹配数组类型的ItemDetails,再用*遍历数组内的每个元素,给每个元素的缺失字段设置默认值。
  3. 两种场景的配置合并在同一个modify-overwrite-beta操作中,无需拆分多个步骤。

输出结果

{
  "MainObj": {
    "SubObj": {
      "Name": "John",
      "Surname": "Smith",
      "Items": [
        {
          "ItemDetails": {
            "MissingKey1": "MissingValue1",
            "MissingKey2": "Not available"
          }
        },
        {
          "ItemDetails": [
            {
              "MissingKey1": "MissingValue2",
              "MissingKey2": "Not available"
            },
            {
              "MissingKey2": "Not available",
              "MissingKey1": "Not available"
            }
          ]
        }
      ]
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:43:23