整数の範囲制約 — JSON Schemaでinteger型を検証

JSON Schemaで整数型の値に最小値・最大値の範囲制約を設定する方法を解説します。

Number Constraints

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "port": {
      "type": "integer",
      "minimum": 1,
      "maximum": 65535
    },
    "httpStatusCode": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10
    }
  },
  "required": ["port"]
}

Test Data

{
  "port": 8080,
  "httpStatusCode": 200,
  "priority": 5
}

詳細な説明

JSON Schemaの integer 型は number 型のサブタイプで、小数部を持たない数値のみを受け入れます。minimummaximum を組み合わせることで、整数値の有効範囲を定義できます。

number 型との違い:

  • integer: 142-10 は有効。1.53.14 は無効。
  • number: 整数も浮動小数点数も両方有効。

範囲指定の例:

{
  "type": "integer",
  "minimum": 1,
  "maximum": 100
}

このスキーマは1から100までの整数のみを許可します。ポート番号(minimum: 0, maximum: 65535)、HTTPステータスコード(minimum: 100, maximum: 599)、ページネーションのページ番号(minimum: 1)など、多くのユースケースで活用できます。

ユースケース

年齢、ページ番号、ポート番号、数量など、特定の範囲内の整数値をバリデーションする際に使用します。

試してみる — JSON Schema Validator

フルツールを開く