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

咨询JSON Schema中`true`替代schema时的定义行为及规范出处

关于JSON Schema Draft-07中true作为Schema的行为定义

你提到的true替代Schema时的行为,是JSON Schema Draft-07核心规范里明确规定的布尔Schema特性,不少开发者初次接触时容易漏掉这个细节。

布尔Schema的核心语义

在Draft-07的规范中,Schema不仅可以是对象结构,布尔值true和false本身就是合法的Schema类型:

  • true:无条件通过验证——无论输入的实例是什么类型、什么内容,验证器都会直接判定它符合该Schema的要求。
  • false:无条件验证失败——任何输入实例都无法通过这个Schema的校验。

对应你示例中的items: true

回到你给出的enum属性定义:

"enum": { "type": "array", "items": true, "minItems": 1, "uniqueItems": true }

这里的items: true就是布尔Schema的典型应用:它告诉验证器,这个数组的每一个元素都不需要额外的约束校验,只要是合法的JSON值即可。结合minItems:1(数组至少包含一个元素)和uniqueItems:true(数组内所有元素必须唯一),整个enum的约束就简化为:一个非空、元素唯一的任意JSON值数组。

规范中的定义依据

在Draft-07的核心规范章节里,布尔Schema的语义被明确列为基础规则:布尔值直接代表验证结果,不需要依赖其他关键字进行判断。验证器遇到true时,会跳过所有复杂的校验逻辑,直接返回"验证通过";遇到false则直接返回"验证失败"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:46:34