JSON模式中的十进制精度

Jay*_*ete 10 rest json jsonschema

我想让我的JSON Schema验证不会向我的REST api发送不超过两个小数位.

从我在最新的JSON Schema RFC(v4)中看到的内容不允许这样做.V1有一个maxDecimals验证器.

有谁知道为什么会被取出?

我有一个字段,当我将它存储在数据库中时只保留两位小数,我不只想舍入到两位小数.对于一些用户来说,这将极大地改变输入.所以我想拒绝任何更高的精确度并迫使他们围绕自己.

我当然可以使用我自己编写的自定义验证器来完成此操作,但除非我必须这样做,否则我宁愿不这样做.

还有另一种在v4中表明这一点的方法吗?

谢谢

fid*_*dur 15

他们用multipleOf替换它(通过v3 divisibleBy).

对于2位小数,只需添加multipleOf:0.01.

  • 由于浮点数不精确,因此这是不可靠的,例如147.41将通过验证,但147.42将不会https://github.com/geraintluff/tv4/issues/158 (2认同)

小智 8

我会建议{ "type": "number", "multipleOf": 0.01 } rather than { "type": "integer", "multipleOf": 0.01 }

http://spacetelescope.github.io/understanding-json-schema/reference/numeric.html#multiples