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

如何以规范方式禁止空字符串作为属性值?替代minLength:1的声明式方案

实现JSON Schema中字符串属性的非空声明(类似HTML的required)

JSON Schema本身没有像HTML required那样直接对应“字符串非空”的关键字,但可以用以下更具声明性的写法替代minLength: 1,语义更清晰:

方式一:用not + enum明确排除空字符串

这种写法直接表达“属性值不能是空字符串”的约束,比minLength: 1更直观,符合你想要的声明性需求。修改后的Schema如下:

{
  "type": "object",
  "patternProperties": {
    "^(?:num|str|text|check|bool)[1-3]$": {
      "type": "string",
      "maxLength": 50,
      "not": { "enum": [""] }
    }
  },
  "additionalProperties": false
}

补充说明

注意JSON Schema里的required关键字是用来指定必须存在的属性,和你要的“属性值非空”是两个概念。上面的写法是目前最接近HTML required(对应输入框非空)语义的实现方式,能清晰传达“字符串不能为空”的约束意图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:54:49