阅读:976回复:0
JSON 框架模式(Schema)
JSON模式是基于JSON格式定义JSON数据结构的规范。它被写在IETF草案,于2011年到期。 JSON模式:
JSON模式验证库 有几个验证器目前可用于不同的编程语言。目前最完整和最兼容的JSON模式验证可用JSV [table=100%,#f7f7f7,#d6d6d6,1,rgb(214, 214, 214)][tr][td=1,1,101]语言[/td][td]程序库[/td][/tr][tr][td]C[/td][td]WJElement (LGPLv3)[/td][/tr][tr][td]Java[/td][td]json-schema-validator (LGPLv3)[/td][/tr][tr][td].NET[/td][td]Json.NET (MIT)[/td][/tr][tr][td]ActionScript 3[/td][td]Frigga (MIT)[/td][/tr][tr][td]Haskell[/td][td]aeson-schema (MIT)[/td][/tr][tr][td]Python[/td][td]Jsonschema[/td][/tr][tr][td]Ruby[/td][td]autoparse (ASL 2.0); ruby-jsonschema (MIT)[/td][/tr][tr][td]PHP[/td][td]php-json-schema (MIT). json-schema (Berkeley)[/td][/tr][tr][td]JavaScript[/td][td]Orderly (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (modified BSD or AFL 2.0); schema.js.[/td][/tr][/table] JSON模式示例 以下是一个基本的JSON模式,其中涵盖了经典的产品目录说明: { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Product", "description": "A product from Acme's catalog", "type": "object", "properties": { "id": { "description": "The unique identifier for a product", "type": "integer" }, "name": { "description": "Name of the product", "type": "string" }, "price": { "type": "number", "minimum": 0, "exclusiveMinimum": true } }, "required": ["id", "name", "price"] } 让我们来看看在这个模式中可以使用的各种重要的关键词: [table=100%,#f7f7f7,#d6d6d6,1,rgb(214, 214, 214)][tr][td=1,1,103]关键字[/td][td]描述[/td][/tr][tr][td]$schema[/td][td]The $schema 关键字状态,这种模式被写入草案V4规范。[/td][/tr][tr][td]title[/td][td]将使用此架构提供一个标题[/td][/tr][tr][td]description[/td][td]架构的一点描述[/td][/tr][tr][td]type[/td][td]我们 JSON 数据类型关键字定义的第一个约束条件:它必须是一个JSON对象[/td][/tr][tr][td]properties[/td][td]定义各个键和它们的值类型,最小和最大值中要使用JSON文件[/td][/tr][tr][td]required[/td][td]这样可以使所需的属性的列表[/td][/tr][tr][td]minimum[/td][td]这是约束的值,并代表可接受的最小值[/td][/tr][tr][td]exclusiveMinimum[/td][td]如果“exclusiveMinimum”的存在,并且具有布尔值true的实例是有效的,如果它是严格的最低限度的值[/td][/tr][tr][td]maximum[/td][td]这是约束的值被提上表示可接受的最大值[/td][/tr][tr][td]exclusiveMaximum[/td][td]如果“exclusiveMaximum”的存在,并且具有布尔值true的实例是有效的,如果它是严格的值小于“最大”。[/td][/tr][tr][td]multipleOf[/td][td]数值实例有效反对“multipleOf”分工的实例此关键字的值,如果结果是一个整数。[/td][/tr][tr][td]maxLength[/td][td]字符串实例的长度被定义为字符的最大数目[/td][/tr][tr][td]minLength[/td][td]字符串实例的长度被定义为字符的最小数目[/td][/tr][tr][td]pattern[/td][td]String实例被认为是有效的,如果正则表达式匹配成功实例[/td][/tr][/table]也可以同时查阅 http://json-schema.org 的关键字可以用在定义JSON模式的完整列表。以上模式可用于测试的有效性,下面给出的JSON代码: [ { "id": 2, "name": "An ice sculpture", "price": 12.50, }, { "id": 3, "name": "A blue mouse", "price": 25.50, } ]
|
|