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

时间:2021-03-23 20:02:52

标签: json jsonschema json-schema-validator

假设我有以下 Json Schema

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

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

无效对象

{
    MinimumNumber: 10,
    MaximumNumber: 5
}

有效对象

{
    MinimumNumber: 5,
    MaximumNumber: 10
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

相关问题