一个数字的MaxLength的JSON Schema属性

本文关键字:MaxLength JSON Schema 属性 数字 一个 | 更新日期: 2023-09-27 18:13:14

我需要限制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"
  }
}

一个数字的MaxLength的JSON Schema属性

From Json-Schema docs:

3.2。数字实例的验证

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

您将需要为此开发一个自定义验证。注意Json。Net使用Json-Schema草案。

在JSON模式中,minLength和maxLength只适用于字符串类型的属性。