JSON Schema 生成・検証ツール

サンプルからJSON Schemaを生成したり、JSONドキュメントをスキーマに対して検証したりできます。すべてブラウザー内で動作し、データがお使いのデバイスから外に出ることはありません。

スキーマの生成と ajv の検証はブラウザー内でローカルに実行されるため、あなたのJSONサンプル・スキーマ・ドキュメントがアップロードされることはありません。

代わりにTypeScriptの型が必要ですか?JSON to TypeScriptをお試しください。

JSON Schema 生成・検証ツール について

このJSON Schema生成ツールはJSONサンプルをすぐ使えるJSON Schemaに変換し、組み込みのバリデーターは指定したスキーマに対して任意のJSONドキュメントを検証します。生成モードでは、サンプルをたどってオブジェクト・配列・文字列・数値・真偽値・nullの型を推測し、配列要素を統合し、すべてのプロパティを必須にしたり、additionalProperties を false に設定したり、email・date・date-time・uri・uuid のような文字列フォーマットを検出したりできます。出力には draft-07 または draft 2020-12 を選べます。検証モードでは ajv を allErrors と ajv-formats とともに実行し、各失敗をそのインスタンスパスとメッセージとともに列挙します。APIの開発者・バックエンドエンジニア・JSONの契約を定義またはテストするすべての人のために作られています。すべてはブラウザー内で動作するため、貼り付けたサンプルとスキーマはお使いのデバイスに留まります。

機能

JSON Schema 生成・検証ツール の使い方

  1. スキーマを作成するなら「Generate」、ドキュメントを検証するなら「Validate」を選びます。
  2. Generateでは、JSONサンプルを貼り付け、required・additionalProperties・フォーマットのオプションを切り替えます。
  3. draft-07 または draft 2020-12 を選び、できあがった schema.json をコピーまたはダウンロードします。
  4. Validateでは、左にJSON Schema、右にJSONドキュメントを貼り付けます。
  5. valid/invalidのバッジと、それぞれインスタンスパス付きのエラー一覧を読みます。

入力

{
  "id": 1,
  "name": "Ada",
  "email": "ada@example.com",
  "tags": ["a", "b"]
}

出力

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "tags": { "type": "array", "items": { "type": "string" } }
  },
  "required": ["id", "name", "email", "tags"]
}

required とフォーマット推測をオンにすると、サンプルから draft-07 のスキーマが生成されます。

よくあるエラーとトラブルシューティング

よくある質問

生成ツールはどのJSON Schemaのドラフトを使いますか?
デフォルトは draft-07 で、draft 2020-12 のオプションもあります。この選択は出力の $schema 方言URLと、ドラフト間の細かな違いを設定します。推測される構造はそれ以外は同じです。
スキーマを生成するとき、必須プロパティはどう決まりますか?
デフォルトでは、どのプロパティも必須にされないため、スキーマは部分的なオブジェクトを受け入れます。「Mark all properties required」をオンにすると、各オブジェクトのすべてのキーがその required 配列に追加されます。
バリデーターはエラーをどう報告しますか?
ajv を allErrors を有効にして実行するため、すべての失敗を一度に得られます。各エラーはJSONのインスタンスパス(例:/items/0/id)と人間が読めるメッセージを表示し、不足している必須キーや予期しない追加プロパティも含みます。
生成ツールは email や date のような文字列フォーマットを推測しますか?
はい、「Infer string formats」がオンのときです。サンプルの文字列値を email・date・date-time・uri・uuid のパターンと照合し、一致した format キーワードを追加します。どれにも一致しない値はプレーンな文字列のままです。
配列のスキーマはどう推測しますか?
すべての配列要素のスキーマを単一の items スキーマに統合します。混在するオブジェクト要素はプロパティごとに統合され、いずれかの要素に欠けているキーは required から外れ、空配列は items:{} になります。
私のJSONサンプルやスキーマはどこかにアップロードされますか?
いいえ。生成も検証も、ajv を含め完全にブラウザー内で実行されるため、貼り付けたサンプル・スキーマ・ドキュメントはローカルで処理され、お使いのデバイスに留まります。

関連ツール

すべての ArrayKit ツール