jsonschema - JSON Schema - 名为“type”的字段
问题描述
我在多个系统之间有一个现有的 JSON 数据馈送,我无法控制也无法更改。我的任务是为此提要编写架构。现有的JSON部分看起来像这样:
"ids": [
{ "type": "payroll", "value": "011808237" },
{ "type": "geid", "value": "31826" }
]
当我尝试为此定义一个 JSON 模式时,我最终得到了一个如下所示的模式:
"properties": {
"type": { <====================== PROBLEM!!!!
"type": "string",
"enum": [ "payroll", "geid" ]
},
"value": {
"type": [ "string", "null" ],
"pattern": "^[0-9]*$"
}
}
正如您可能猜到的那样,当 JSON 验证器在标记为“问题!!!”的行上点击该“类型”时 它会感到不安并抛出一个关于 type 需要如何成为字符串或数组的错误。
解决方案
这是您正在使用的特定实现中的一个错误,应该这样报告。它应该能够很好地处理看起来像关键字的属性。事实上,元模式(有效模式的模式)以这种方式使用“类型”,以及所有其他关键字:例如http://json-schema.org/draft-07/schema
我想知道它是否没有使用官方测试套件(https://github.com/json-schema-org/JSON-Schema-Test-Suite)?
你没有说明你正在使用什么实现,或者什么语言,但也许你可以在这里找到一个替代方案:https ://json-schema.org/implementations.html#validators
推荐阅读
- r - RStudio 中是否有键盘快捷键可以将 roxygen2 表示法(#')放在 R 中每个选定行的开头?
- javascript - 尝试集线器连接时出现 WebSocket 异常
- python - PyQt5 从另一个模块发出信号
- javascript - 将javascript移动到资产文件夹
- html - 带有覆盖/工具提示的 HTML 图像地图
- python - Yellowbrick visualiser.fit() 引发 ValueError
- python - TensorFlow MNIST 精度计算不正确
- sql-server - SQL Server 存储过程问题
- .htaccess - 我想使用 .htaccess 使用重写规则来缩短 URL。我怎样才能做到这一点?
- python - 尝试在 Odoo 12.0 社区上安装模块“记录不存在或已被删除”时出现错误消息