我要求限制十进制类型的Amount字段长度为12 + 4。即,最大整数值可以是999999999999,而最大小数位数是4.我使用NewtonSoft.JSON进行模式验证。
我尝试使用以下架构但它似乎没有工作。
{
"type":"object",
"required":false,
"properties":{
"Product": {
"type":"object",
"required":false,
"properties":{
"Amount": {
"type":"number",
"required":true,
"blank":false,
"minLength":1,
"maxDecimal":4 ,
"minimum":0,
"maximum": 999999999999
},
"ProductID": {
"type":"string",
"required":false
},
"ProductType": {
"type":"string",
"required":false
}
}
}
}
}
请有人在这里指导我。提前谢谢。
我输入的JSON字符串如下,
{
"Product": {
"Amount": 888888888888.2222,
"ProductType": "Notes",
"ProductID": "GBPN"
}
}
答案 0 :(得分:2)
来自Json-Schema docs:
3.2。验证数字实例
JSON规范没有定义数值的比例或精度的任何界限。 JSON Schema也没有定义任何这样的边界。这意味着JSON Schema处理的数字实例可以是任意大的和/或具有任意大小数部分,无论底层编程语言处理此类数据的能力如何。
您需要为此开发自定义验证。请注意Json.Net使用Json-Schema draft3。