Decimal precision in JSON Schema

2019-04-21 20:09发布

问题:

I want to have my JSON Schema validate that no more than two decimal places are sent to my REST api.

From what I can see in the latest JSON Schema RFC (v4) doesn't allow this. V1 had a maxDecimals validator.

Does anyone know why that was taken out?

I have a field that only holds two decimals when I store it in the database, and I do not just want to round down to two decimals. That would be changing the input quite dramatically for some users. So I want to reject any greater precision and force them to round them selves.

I can of course do this using a custom validator that I write myself, but I would rather not unless I absolutely have to.

Is there another way of indicating this in v4?

Thanks

回答1:

They replaced it with multipleOf (via v3 divisibleBy).

For 2 decimal places, just add multipleOf: 0.01.



回答2:

I would suggest { "type": "number", "multipleOf": 0.01 } rather than { "type": "integer", "multipleOf": 0.01 }.

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