我正在尝试表达对象及其之间的关系。 每个对象都有一个ID,每个关系都引用2个对象ID。 我想确保每个关系都引用现有的对象ID。您可以使用Json Schema做到这一点吗?
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Objects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
}
}
}
},
"Relations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"objId1": {"type": "integer"}, // I'd like these
"objId2": {"type": "integer"} // Two fields to reference an existing Objects.id
}
}
},
},
}
答案 0 :(得分:1)
否,您无法使用JSON架构执行此操作。抱歉。
听起来这是一个数据库。 您应该考虑使用数据库级别的约束进行这种验证。
答案 1 :(得分:0)
JESS(JSON扩展结构模式)支持此处所需类型的文档内参照完整性约束。 尤其参见https://bitbucket.org/pkoppstein/jess/wiki/Home#markdown-header-specifying-within-document-referential-integrity-constraints
顺便说一句,也可以通过将单独的文档合并为复合文档来处理文档之间的参照完整性约束(如果有些笨拙)。
免责声明:我是JESS规范和验证模块的作者。