我想让我的JSON Schema验证不会向我的REST api发送不超过两个小数位。
从我在最新的JSON Schema RFC(v4)中看到的内容不允许这样做。 V1有一个maxDecimals验证器。
有谁知道为什么会被取出?
我有一个字段,当我将它存储在数据库中时只保留两位小数,我不只想舍入到两位小数。对于一些用户来说,这将极大地改变输入。所以我想拒绝任何更高的精确度,并强迫他们围绕自己。
我当然可以使用我自己编写的自定义验证器来做到这一点,但除非我绝对必须这样做,否则我宁愿不这样做。
还有另一种方法可以在v4中表明这一点吗?
由于
答案 0 :(得分:13)
他们用multipleOf替换它(通过v3 divisibleBy)。
对于2位小数,只需添加multipleOf:0.01。
答案 1 :(得分:4)
我建议{ "type": "number", "multipleOf": 0.01 } rather than { "type": "integer", "multipleOf": 0.01 }
。
请参阅http://spacetelescope.github.io/understanding-json-schema/reference/numeric.html#multiples
答案 2 :(得分:2)
如果您使用的是python jsonschema库,则您需要
{ "type": "number", "multipleOfPrecision": 0.01 }
答案 3 :(得分:2)
基于JSON Schema specification rfc.section.6.3:
{
"type": "string",
"pattern": "-?^\\d*(.\\d{0,2})?$"
}