MaxLength的JSON Schema属性

时间:2014-07-16 10:42:29

标签: c# json json.net jsonschema

我要求限制十进制类型的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"
  }
}

1 个答案:

答案 0 :(得分:2)

来自Json-Schema docs:

3.2。验证数字实例

JSON规范没有定义数值的比例或精度的任何界限。 JSON Schema也没有定义任何这样的边界。这意味着JSON Schema处理的数字实例可以是任意大的和/或具有任意大小数部分,无论底层编程语言处理此类数据的能力如何。

您需要为此开发自定义验证。请注意Json.Net使用Json-Schema draft3。