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

JSON Schema负常量设置及端口oneOf校验异常问题求助

JSON Schema oneOf校验异常排查方案

问题分析

你遇到的错误明显反常:21915不可能匹配const: -1规则,说明要么是配置笔误,要么是校验器存在bug,或者schema引用路径错误。

排查步骤

  • 检查const规则写法:确认你的校验规则中{"const": -1}没有笔误,比如误写成{"minimum": -1}这类会包含正整数的规则。
  • 核对schema文件引用:报错信息里出现的是schemaDef.json#/port,但你的校验规则里写的是schemaFile.json#/port,确认这两个文件是否为同一文件,或者是否存在路径引用错误导致加载了错误的schema规则。
  • 切换校验器验证:用标准的JSON Schema校验器(比如ajv-cli)重新测试,排除当前校验器的bug:
    1. 安装ajv-cli:npm install -g ajv-cli
    2. 确保schemaFile.json内容正确:
      {
        "port": {
          "type": "number",
          "multipleOf": 1.0,
          "minimum": 1,
          "maximum": 65535
        }
      }
      
    3. 创建主校验schema(main-schema.json):
      {
        "oneOf": [
          {"$ref": "schemaFile.json#/port"},
          {"const": -1},
          {"type": "null"}
        ]
      }
      
    4. 测试21915:echo 21915 | ajv validate -s main-schema.json
      正常情况下会返回valid,不会出现同时匹配两个规则的错误。

补充说明

你的oneOf规则逻辑本身是合理的:三个分支(1-65535整数、-1、null)完全互斥,正常校验器不会出现同时匹配的情况。重点排查配置细节和校验器本身的问题。

内容的提问来源于stack exchange,提问作者Alberto J Lorenzo Rosario

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:55:14