json - 带有 $ref 的 Json 模式属性
问题描述
尝试将 $ref 用于整个属性。我不知道这是什么语法有效,但不验证有效负载。这应该会失败,但不会。
我也试过“$ref”:“file:./ref.json”。
架构:
{
"animal": {
"properties":{
"allOf": {"$ref": "file:./ref.json"}
}
},
"required": ["animal"]
}
参考.json:
{
"action":{
"type": "string"
},
"required": ["action"]
}
有效载荷
{
"animal": {
"action": 2
}
}
解决方案
"allOf": {"$ref": "file:./ref.json"}
在语法上无效—— an 的值allOf
必须是一个数组。(您的评估员应该就此向您发出警告。)- JSON Schema 评估器不需要支持从磁盘或网络加载外部文件。检查您的文档以了解如何将文档添加到评估器,以便
$ref
. (当您引用未知资源时,您的评估员应该给您一个警告。)
您没有看到上述错误的原因是因为您的整个架构中没有可识别的关键字——您缺少"properties": { ... }
围绕整个架构的包装。顶级“关键字”是“动物”,它无法识别,因此模式中的任何地方都没有可识别的关键字,因此没有什么可以使它返回无效结果。
推荐阅读
- .net-core - 如何通过 MSBuild 包目标将 ref 程序集添加到 NuGet 包?
- html - 输入 css 样式
- vue.js - 具有获取数据的 Vue 路由器
- javascript - 搜索二叉树javascript的最大深度时,递归函数如何保持计数
- python - django rest框架不输出自定义响应
- java - 我需要在那里显式使用 flush() 方法吗?
- svelte - 获取一个苗条的嵌套自定义商店的价值,在另一个自定义商店中
- python - error 错误响应类型 | 不和谐蟒蛇机器人
- object - 检查对象是否已经存在?
- javascript - 将 javascript/npm 库与依赖项捆绑在一起