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

如何使用JSON Schema验证含随机名称子属性中的指定JSON属性

如何验证JSON中shipping_address下随机名称子属性里的"haha"字段

你遇到的问题是因为Schema的层级匹配错了——你之前的写法是在shipping_address对象里直接找haha字段,但实际上haha是藏在shipping_address的随机名称子对象里的。下面给你两种针对性的解决方案:

先明确你的问题场景

需要验证的JSON结构:

{ 
  "shipping_address": { 
    "randomName1":{ "haha":"ddd"}, 
    "randomName2":{ "haha":"ddd"}, 
    "randomName3":{ "haha":"ddd"} 
  } 
}

你之前尝试的无效Schema:

{ 
  "$schema": "http://json-schema.org/draft-6/schema#", 
  "type": "object", 
  "properties": { 
    "shipping_address": { 
      "allOf": [ 
        { 
          "properties": { 
            "haha": { "type": "integer" } 
          } 
        } 
      ] 
    } 
  } 
}

解决方案1:用additionalProperties约束所有随机子属性

如果这些随机名称的键没有固定格式,完全是任意的,用additionalProperties来定义shipping_address下所有子对象的规则最适合:

{ 
  "$schema": "http://json-schema.org/draft-6/schema#", 
  "type": "object", 
  "properties": { 
    "shipping_address": { 
      "type": "object", 
      // 定义shipping_address下所有子对象必须遵循的规则
      "additionalProperties": { 
        "type": "object", 
        "required": ["haha"], // 可选:如果要求haha是必填字段
        "properties": { 
          "haha": { "type": "integer" } 
        } 
      } 
    } 
  },
  "required": ["shipping_address"] // 可选:如果shipping_address是必填项
}

这个Schema会检查shipping_address里的每一个子对象,确保它们都包含haha字段,且haha的值为整数。

解决方案2:用patternProperties匹配有规律的随机键

如果你的随机键有固定模式(比如都以randomName开头、后面跟数字),可以用patternProperties精准匹配这些键,还能搭配additionalProperties: false来禁止不符合模式的键:

{ 
  "$schema": "http://json-schema.org/draft-6/schema#", 
  "type": "object", 
  "properties": { 
    "shipping_address": { 
      "type": "object", 
      // 匹配以randomName开头、后跟数字的键
      "patternProperties": { 
        "^randomName\\d+$": { 
          "type": "object", 
          "required": ["haha"], 
          "properties": { 
            "haha": { "type": "integer" } 
          } 
        } 
      },
      "additionalProperties": false // 禁止出现不符合上述模式的其他键
    } 
  }
}

这样既能精准约束符合命名规律的子属性,又能避免无关的键混入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:19:03