这个问题的另一个标题是“必需的属性组合”。
假设我正在使用这样的 json 模式:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "JSON schema for NLU (npm-link-up) library.",
"type": "object",
"additionalProperties": false,
"required": [
"list", "packages", "deps"
],
// ...
}
我想做的是使“列表”、“包”、“deps”之一成为必需的。那是一个,但不超过一个,应该存在。
所以它可能是这样的:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "JSON schema for NLU (npm-link-up) library.",
"type": "object",
"additionalProperties": false,
"required": [
{
"min": 1,
"max": 1,
"selection": ["list", "packages", "deps"]
}
],
}
或者
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "JSON schema for NLU (npm-link-up) library.",
"type": "object",
"additionalProperties": false,
"required": [
{
"operator": "or",
"selection": ["list", "packages", "deps"]
}
],
}
这可能吗?