Как можно ограничить десятичные разряды в схеме JSON? - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь сохранить десятичные числа с ограниченным числом десятичных разрядов в моих данных JSON, и первоначально я хотел сделать это, используя строки.Однако схема не поддерживает это.Итак, на данный момент я ограничен использованием этого:

{"type": "number", "multipleOf" : 0.1} <- 1 decimal place
{"type": "number", "multipleOf" : 0.01} <- 2 decimal places

Это отлично работает в dev, но я знаю из первых рук, как быстро плавающие могут сломаться в реальных приложениях.Поэтому мой первый выбор - найти способ сохранить их в виде строк в моих данных.Возможно ли это с текущей реализацией схемы JSON?

Ответы [ 2 ]

0 голосов
/ 30 августа 2019

Согласно предыдущему ответу, если вы рады представить число в виде строки, вы можете использовать шаблон регулярного выражения.

Ниже приведено ограничение числа до 15sf (потенциально полезно, если вас беспокоитвыражаемость с плавающей запятой):

{
   "type": "string",
   "pattern": "^(?!(?:.*?[1-9]){15,})([-+]?\\s*\\d+\\.?\\d*?)$"
}
0 голосов
/ 04 марта 2019

Это не то, что возможно с JSON Schema для чисел.Если вы можете представить свой номер в виде строки, вы можете использовать регулярные выражения в схеме JSON для проверки такого рода вещей.

Найдите ключевое слово pattern.

...