我必须使用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来验证数据,特别是我需要知道如何处理这个特定的元素部分。将它定义为数组或对象内的数组.. ?? :(:/
答案 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。