Dón*_*nal 3 validation json jsonschema
我正在尝试为属性定义 JSON 模式
money: 12.12
Run Code Online (Sandbox Code Playgroud)
我主要关心的是应该允许最多 2 个小数位。我最初定义这个领域的尝试是
money: {
type: 'number',
minimum: 0,
multipleOf: 0.01
}
Run Code Online (Sandbox Code Playgroud)
然而,由于浮点不精确,这失败了。例如,使用 tv4 验证器,数字 147.41 通过验证,但 147.42 失败。是否有另一种方法来定义最多只允许 2 个小数位的数字类型?
似乎“格式”属性的目的是实现这些类型的限制,但如果我像这样定义字段:
money: {
type: 'number',
format: 'currency',
minimum: 0
}
Run Code Online (Sandbox Code Playgroud)
那么如何指定具有“货币”格式的字段最多只允许 2 个小数位?
小智 5
我不喜欢整数值的东西,我发现当涉及到百分比之类的东西时,当涉及到正确的数字舍入时,它并没有解决实际问题(这就是为什么其他语言有小数类型),并希望使用字符串提供这个非常简单的解决方案和模式:
"amount":{
"type": "string",
"pattern": "^(0|([1-9]+[0-9]*))(\.[0-9]{1,2})?$",
"minLength": 1,
"description": "A Monetary Amount",
"examples": [
"0",
"0.00",
"0.05",
"19.95",
"255.5",
"120000"
]
}
Run Code Online (Sandbox Code Playgroud)
minLength如果你不想要它,你可以删除它。
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |