您如何在 JSON 架构中引用其他 属性 值?
How do you reference other property values in JSON schema?
我有一个具有 2 个属性的 JSON 模式,minimumTolerance 和 maximumTolerance。我需要确保 maximumTolerance 的值不小于 minimumTolerance,反之亦然。这在 JSON 架构中可能吗?
这是我希望能够执行的操作的示例:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "MinMax",
"description": "Minum & Maximum",
"type": "object",
"properties": {
"minimumTolerance":{
"type": "number"
"maximum":{
"$ref":"maximumTolerance"
}
}
"maximumTolerance":{
"type": "number"
"minumum": {
"$ref":"minimumTolerance"
}
}
}
从规范的 Draft-7 开始,无法使用 JSON 模式执行此操作。
是的,但它可能不是您正在寻找的动态答案...输入预期范围内的最小值和最大值:
"MinimumTolerance": {
"type": "number",
"minimum": 0,
"maximum": 6000,
},
"MaximumTolerance": {
"type": "number",
"minimum": 6001,
},
如果您正在使用 AJV,您可以使用 $data
和相对 JSON 指针来执行此操作。示例:
low: {
type: 'integer',
maximum: {
$data: '1/high',
},
exclusiveMaximum: true,
},
high: {
type: 'integer',
minimum: {
$data: '1/low',
},
exclusiveMinimum: true,
},
我有一个具有 2 个属性的 JSON 模式,minimumTolerance 和 maximumTolerance。我需要确保 maximumTolerance 的值不小于 minimumTolerance,反之亦然。这在 JSON 架构中可能吗?
这是我希望能够执行的操作的示例:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "MinMax",
"description": "Minum & Maximum",
"type": "object",
"properties": {
"minimumTolerance":{
"type": "number"
"maximum":{
"$ref":"maximumTolerance"
}
}
"maximumTolerance":{
"type": "number"
"minumum": {
"$ref":"minimumTolerance"
}
}
}
从规范的 Draft-7 开始,无法使用 JSON 模式执行此操作。
是的,但它可能不是您正在寻找的动态答案...输入预期范围内的最小值和最大值:
"MinimumTolerance": {
"type": "number",
"minimum": 0,
"maximum": 6000,
},
"MaximumTolerance": {
"type": "number",
"minimum": 6001,
},
如果您正在使用 AJV,您可以使用 $data
和相对 JSON 指针来执行此操作。示例:
low: {
type: 'integer',
maximum: {
$data: '1/high',
},
exclusiveMaximum: true,
},
high: {
type: 'integer',
minimum: {
$data: '1/low',
},
exclusiveMinimum: true,
},