JSONファイルのスキーマを作成したいのですが、製品の配列用です。
Jsonスキーマは次のようになります。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product set",
"type": "array",
"items": {
"title": "Product",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "number"
},
"name": {
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
},
"dimensions": {
"type": "object",
"properties": {
"length": {"type": "number"},
"width": {"type": "number"},
"height": {"type": "number"}
},
"required": ["length", "width", "height"]
},
"warehouseLocation": {
"description": "Coordinates of the warehouse with the product",
"$ref": "http://json-schema.org/geo"
}
},
"required": ["id", "name", "price"]
}
}
配列には少なくとも1つの項目が必要です。配列の最小値を定義するにはどうすればよいですか?
最小定義を追加する必要がありますか?
少なくとも、ワーキングドラフトを検討していると、minimum
は配列ではなく数値にのみ適用されると思います。
5.1。数値インスタンスの検証キーワード(数値と整数)
...
5.1.3。minimum and exclusiveMinimum
したがって、配列にはmin/maxItemsを使用する必要があります。
配列内のアイテムの最小数を設定するには、「minItems」を使用します。
見る:
http://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.
そして
http://jsonary.com/documentation/json-schema/?section=keywords/Array%20validation
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
...
"tags": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
}
},
"required": ["id", "name", "price"]
}
ドラフトv4では、探しているものが許可されているようです。 http://json-schema.org/example1.html から:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
...
"tags": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"required": ["id", "name", "price"]
}
「tags」プロパティは、最小アイテム数(1)の配列として定義されていることに注意してください。