【发布时间】:2015-10-05 23:38:58
【问题描述】:
我想在我的架构中使用一个数组(项目)。数组中的每个对象都可以是架构中概述的“框架类型”之一。
我正在开发的架构如下:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"Campaign_name",
"Legals"
],
"properties": {
"Campaign_name": {
"type": "string",
"minLength": 3
},
"Legals": {
"type": "object",
"properties": {
"legal-button-label": {
"type": "string",
"minLength": 6
},
"legal-text": {
"type": "string",
"minLength": 15
}
}
},
"Banner_120x600": {
"type": "object",
"properties": {
"serve-backup": {
"type": "object",
"properties": {
"choice": {
"type": "string",
"enum": [
"yes",
"no"
]
},
"image": {
"type": "string",
"pattern": "^([a-zA-Z|-]+)([.])(gif|jpeg|jpg|png)$"
}
}
},
"background": {
"type": "string",
"pattern": "^([a-zA-Z|-]+)([.])(gif|jpeg|jpg|png)$"
},
"logo": {
"type": "string",
"pattern": "^([a-zA-Z|-]+)([.])(gif|jpeg|jpg|png)$"
},
"loop": {
"type": "integer",
"enum": [
0,
1,
2
]
},
"frames": {
"type": "array",
"minItems": 1,
"maxItems": 6,
"items": {
"oneOf": [
{
"$ref": "#/frame-type/INTRO-FRAME"
},
{
"$ref": "#/frame-type/OFFER-FRAME-TYPE-1"
}
]
}
}
}
}
},
"frame-type": {
"INTRO-FRAME": {},
"OFFER-FRAME-TYPE-1": {}
}
}
但是,JSON 不会针对架构进行验证。我正在开发的 JSON 如下所示:
{
"Campaign_name": "OSM DT DATA",
"Legals": {
"legal-button-label": "Click for Legals",
"legal-text": "Requires 3G/Wi-Fi. Content depends..."
},
"Banner_120x600": {
"serve-backup": {
"choice": "no",
"image": "backup.jpg"
},
"background": "background.png",
"logo": "sky-logo.png",
"loop": 2,
"frames": [
{
"type": "INTRO-FRAME"
},
{
"type": "OFFER-FRAME-TYPE-1"
}
]
}
}
【问题讨论】:
标签: json validation schema