JSON模式验证

时间:2016-10-05 07:32:30

标签: json schema

我必须使用JSON创建表单。 因此,作为第一步,我需要使用模式验证JSON。 这是我的JSON的一部分

"elements":{  
         "textbox":{ 
          "name":{ 
            "type":"text",
            "name":"textbox",
            "label":"Enter Your Name",
            "required":false,
            "disabled":false,
            "maxlength":"",
            "pattern":"",
            "readonly":false,
            "value":"",
            "autocomplete":"off"
         },
         "school":{  
            "type":"text",
            "name":"textbox",
            "label":"F",
            "required":false,
            "disabled":false,
            "maxlength":"",
            "pattern":"",
            "readonly":false,
            "value":"",
            "autocomplete":"off"
         }

... ... ...             }

所以内部"元素",它有一个文本框,输入JSON的人可以在" textbox"内部提供任意数量的文本框字段。用于表单创建。

我需要编写一个JSON Schema来验证数据,特别是我需要知道如何处理这个特定的元素部分。将它定义为数组或对象内的数组.. ?? :(:/

1 个答案:

答案 0 :(得分:0)

好吧,我建议您将textbox定义为数组。这样,您可以为数组中的对象设置不同的参数,然后就可以通过这种方式验证数据。

以下是我所谈论的一个小例子:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {},
    "id": "example",
    "properties": {
        "elements": {
            "id": "/properties/elements",
            "properties": {
                "textbox": {
                    "id": "/properties/elements/properties/textbox",
                    "items": {
                        "id": "/properties/elements/properties/textbox/items",
                        "properties": {
                            "Parameter1": {
                                "id": "/properties/elements/properties/textbox/items/properties/Parameter1",
                                "type": "string"
                            },
                            "Parameter2": {
                                "id": "/properties/elements/properties/textbox/items/properties/Parameter2",
                                "type": "number"
                            },
                            "Parameter3": {
                                "id": "/properties/elements/properties/textbox/items/properties/Parameter3",
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        }
    },
    "type": "object"
}

这样,用户可以输入他想要的任意数量的文本框,您仍然可以使用相同的模式来验证JSON。