AZ Tools

JSON Schema ジェネレータ

開発

貼り付けた JSON を辿って型(integer・number・string・boolean・null・array・object)を推論、一般的な文字列フォーマット(email・URI・UUID・IPv4・date・date-time)を検出、検証に使える JSON Schema を出力。オプションで全プロパティを required にマークしたり、値を `examples` として埋め込んだり。

JSON Schema (draft-07)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "user": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "verified": {
          "type": "boolean"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "address": {
          "type": "object",
          "properties": {
            "street": {
              "type": "string"
            },
            "city": {
              "type": "string"
            }
          },
          "required": [
            "street",
            "city"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "email",
        "verified",
        "roles",
        "address"
      ]
    }
  },
  "required": [
    "user"
  ]
}

使い方

  1. JSON サンプルを入力ボックスに貼り付け。
  2. 全プロパティを required にするか(厳密な API 契約に良い)、存在するキーのみにするか(部分・patch ペイロードに良い)を選択。
  3. 値を `examples` として含めると、生成されたドキュメントに型と一緒にサンプルも表示される。

よくある質問

対象とする draft は?
draft-07 — validator・コードジェネレータ・Stoplight や Redocly などのエディタツールで最も広くサポートされているバージョン。OpenAPI 3.0 で使われる JSON Schema フラグメントとも互換。
混合型配列の扱いは?
全要素が同じスキーマを生むなら `items` はそのスキーマに集約。要素が異なれば `items.type` は union(`['string', 'integer']`)。`anyOf` / `oneOf` は生成しない — できるだけシンプルに保つ。
どの文字列フォーマットを自動検出?
`date-time`・`date`・`email`・`uri`・`uuid`・`ipv4`。部分文字列ではなく全体に一致する必要あり。
nullable フィールドは?
入力の null 値は `"type": "null"` に。optional-nullable フィールドは代表的なサンプルでジェネレータを走らせてマージ — 推測せず最小限のスキーマを保つ。

関連ツール