还是以引子中提到的场景为例,尝试用 JSON Schema 语法描述标签函数,可以从一个基本轮廓开始:
{"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TextLinks",
"description": "文字链接",
"type": "array"
}
其中,第一个维度为数组,而每个数组成员,又都是由 text 和 href 两个字段构成的对象,分别表示链接的标题和地址。因此,描述可以扩充为:
{"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TextLinks",
"description": "文字链接",
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"title": "文字"
},
"href": {
"type": "string",
"title": "链接地址(URL)"
}
}
}
}
根据标签函数的定义,对数据行数的控制,还有 row 和 defaultRow 两个附加约束,可以分别对应到 JSON Schema 规范中的最大条目限制 maxItems 和最小条目限制 minItems 两个关键字。那么,最终的数据描述就变成了:
{"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TextLinks",
"description": "文字链接",
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"title": "文字"
},
"href": {
"type": "string",
"title": "链接地址(URL)"
}
}
},
"maxItems": 10,
"minItems": 5
}
好了,例子潦潦草草地讲完了,没有深入地展开,你可能对 JSON Schema 已经有了基本认知,也可能一头雾水。没有关系,更多细节,我们将在接下来的系列文章中娓娓道来。
相关资料- JSON Schema and Hyper-Schema
- Schema and metadata
- draft-zyp-json-schema-04 注
- [1]: TMS 为淘宝内部运营活动系统。
Web开发 schema
作者:Taobao FED | 淘宝前端团队