JSON Schema验证器未正确校验非对象类型输入的问题咨询
JSON Schema 校验异常问题
根Schema定义
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "deviceId": { "description": "设备唯一ID,UUIDv4格式", "type": "string", "format": "uuid" } }, "required": ["deviceId"] }
正常校验场景
当输入包含无效UUID的JSON对象时,校验器能正确报错:
{ "deviceId" : "410c75b4" }
异常校验场景
但输入以下非对象类型内容时,校验器未报告任何错误:
"" "1234" 0
问题说明
根Schema明确规定deviceId为必填字段,但校验器允许空字符串、普通字符串、数字这类不符合对象结构的输入通过验证。
所用Python校验代码
try: validate(instance=jsoninput, schema=rootschema, format_checker=jsonschema.FormatChecker()) except Exception as err: print(f'Validation failed: {err}') return False
已通过在线JSON Schema校验工具测试过该问题。
内容的提问来源于stack exchange,提问作者Daemon
相关产品推荐
相关产品推荐

