json 模式根据另一个 属性 的值验证一个 属性 的值

json schema validate the value of one property against the value of another property

假设我有以下 Json 架构

{
    'type': 'object',
    'properties': {
        'MinimumNumber': {'type':'number'},
        'MaximumNumber': {'type':'number'}
     },
     'required': ['MinimumNumber', 'MaximumNumber'],
     'additionalProperties': false
}

如何验证 MaximumNumber 的值是否高于 MinimumNumber 的值?

无效对象

{
    MinimumNumber: 10,
    MaximumNumber: 5
}

有效对象

{
    MinimumNumber: 5,
    MaximumNumber: 10
}

这是一个常见问题,但是不,在 JSON 架构中无法将数据的一部分与另一部分进行比较。您可以通过编辑架构以包含一部分数据来手动完成此操作,例如通过模板。

@Ether 说得对,纯 JSON 模式没有解决方案。但是,现在有词汇。我 written one 可以让你做到这一点。

目前只有我的 .Net 实现,但随着 2020-12 草案的采用,这可能会在其他框架的实现中得到更多使用。