十进制json模式的模式验证

问题描述 投票:0回答:1

我们需要在JSON模式中为一个数字格式匹配以下场景。

数字应该只接受小数点格式,如5.05.1,不应该接受整数格式,如456。

数字不应该接受超过11位小数(例如5.11111111111111应该抛出一个错误,因为它有12位小数,但5.111应该被接受,因为它有3位小数)。

我试过下面的JSON模式,但没有用。

"myscore": {
        "type": "number",
        "multipleOf": 0.00000000001,
        "not": {
            "multipleOf": 1
        }
    }
json regex jsonschema json-schema-validator
1个回答
2
投票

唯一的方法是将数字作为字符串发送,并使用regex来验证。

数学整数

一些编程语言和解析器对浮点数使用的内部表示方法与对整数使用的不同。

为了保持一致性,整数JSON数字不应该用小数部分进行编码。

http:/json-schema.orgdraft2019-09json-schema-core.html#rfc.section.6.3。

如果你特别想存储 5.0你存储的是一个字符串,因为它等同于 5 就数字而言,。

© www.soinside.com 2019 - 2024. All rights reserved.