json模式基于其他属性最大化价值

时间:2019-01-31 16:54:38

标签: json jsonschema

我有一个draft7模式。 totalSizeOfFarmtotalAreaGrass这两个必需的属性都是number类型,并且exclusiveMinimum的值为0。

我希望totalAreaGrass的最大值不超过totalSizeOfFarm的值。 能做到吗?

我一直在研究if..then,但不了解如何获取totalSizeOfFarm的值。

请咨询。

1 个答案:

答案 0 :(得分:1)

您不能在架构中使用JSON实例中数字的特定值。 您所描述的是验证业务逻辑,这超出了JSON Schema的范围。

如果您具有特定的值(例如将其放入枚举中的值),则可以基于特定的值进行操作,但不能从要验证的JSON实例动态地进行操作。

也就是说,没有什么可以阻止您添加自己的关键字,并使用该接口基于该关键字执行自己的功能。并非所有的库都支持这种功能(ajv支持),这将使您的JSON模式不再可供其他人使用,这可能是一个考虑因素。