我使用的是ajv 8.6.2
我有使用默认导出针对 Draft-07 进行验证的架构
当我使用Draft-09 导出时,我的所有架构都会出现此错误:
no schema with key or ref "https://json-schema.org/draft-07/schema"
Run Code Online (Sandbox Code Playgroud)
如果我使用这个,也会出现同样的错误:
no schema with key or ref "https://json-schema.org/draft-09/schema"
Run Code Online (Sandbox Code Playgroud)
似乎无法弄清楚这里发生了什么?
小智 7
AJV 似乎不支持 HTTPs 版本的 json-schema 标识符;尝试使用http::
{
"$schema": "http://json-schema.org/draft-07/schema"
}
Run Code Online (Sandbox Code Playgroud)
如果你的意思是
当我使用 Draft-09 导出全部时
您正在使用Ajv2019实例
import Ajv2019 from "ajv/dist/2019"
const ajv = new Ajv2019()
Run Code Online (Sandbox Code Playgroud)
然后你需要添加draft-07元模式:
const draft7MetaSchema = require("ajv/dist/refs/json-schema-draft-07.json")
ajv.addMetaSchema(draft7MetaSchema)
Run Code Online (Sandbox Code Playgroud)
如https://ajv.js.org/guide/schema-language.html#draft-2019-09-and-draft-2020-12中所述
仅供参考,不要使用 引用 JSON 元模式https://,它们的标识符确实以 开头http://,ajv不会检索它们,而是将它们打包。
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |