JSON Schema ジェネレーター

JSONデータから標準準拠のJSON Schema定義を自動生成

JSON入力
行数: 1 | 文字数: 0
JSON Schema出力
// JSON Schemaが自動的に生成されます
プロパティ: 0 | 行数: 1

設定オプション

Schema ID
Schemaの一意識別子を設定。通常URI形式で、大規模システムでSchemaを参照・識別するために使用
すべてのフィールド必須
有効にすると、すべてのプロパティがrequired配列に追加され、これらのフィールドがデータに存在する必要があります
デフォルト値を追加
サンプルJSONの実際の値に基づいてdefaultプロパティを自動生成。デフォルト値が必要な設定ファイルに便利
フィールド説明を追加
各プロパティにdescriptionフィールドを自動追加。データ型とソースを記述し、ドキュメント生成に役立ちます
厳格モード
additionalProperties: falseを有効にして、未定義の追加プロパティを禁止。データ構造の厳格な一貫性を確保

JSON Schemaとは?

JSON SchemaはJSONデータ構造を記述・検証するための仕様です。構造、データ型、制約のルールを定義し、API検証、フォーム検証、設定ファイル検証などで広く使用されています。

JSON Schemaでできること:

  • データ検証:JSONデータが期待される形式と制約に一致するか検証
  • ドキュメント生成:APIドキュメントと型定義を自動生成
  • コードインテリジェンス:IDEでスマート補完と型チェックを取得
  • 自動テスト:テストでレスポンスデータ形式を自動検証

このツールはJSON Schema Draft-07仕様をサポートし、ネストオブジェクト、配列型、列挙値などの複雑な構造をインテリジェントに推測します。

使い方

  1. 左の入力ボックスにJSONデータを貼り付けるか、サンプルをクリックしてサンプルデータをロード
  2. オプションを設定:Schema IDを設定、すべてのフィールドを必須にするか、デフォルト値を追加するかなど
  3. 対応するJSON Schema定義が右側に自動生成されます
  4. コピーをクリックして生成されたSchemaをクリップボードにコピー
  5. SchemaをAPI検証、フォーム検証、設定ファイル検証などに使用

使用例

シンプルオブジェクトSchema

输入 JSON:
{
  "name": "张三",
  "age": 28,
  "isActive": true
}

输出 JSON Schema:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "description": "Object with 3 properties",
  "properties": {
    "name": {
      "type": "string",
      "description": "String value"
    },
    "age": {
      "type": "integer",
      "description": "Number value"
    },
    "isActive": {
      "type": "boolean",
      "description": "Boolean value"
    }
  },
  "required": ["name", "age", "isActive"]
}

ネストオブジェクトと配列

输入 JSON:
{
  "user": {
    "id": 1,
    "profile": {
      "avatar": "url",
      "skills": ["JS", "TS"]
    }
  }
}

输出 JSON Schema:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "user": {
      "type": "object",
      "properties": {
        "id": { "type": "integer" },
        "profile": {
          "type": "object",
          "properties": {
            "avatar": { "type": "string" },
            "skills": {
              "type": "array",
              "items": { "type": "string" }
            }
          }
        }
      }
    }
  }
}

データ検証例

使用 Ajv 验证数据:

const Ajv = require('ajv');
const ajv = new Ajv();

const schema = { /* 生成的 Schema */ };
const validate = ajv.compile(schema);

const validData = { name: "李四", age: 25, isActive: false };
const invalidData = { name: "王五", age: "三十" };

console.log(validate(validData));    // true
console.log(validate(invalidData));  // false
console.log(validate.errors);        // 错误详情

よくある質問(FAQ)

Q: JSON Schemaの一般的な使用例は?

A: JSON Schemaは主に:APIリクエスト/レスポンス検証、フォームデータ検証、設定ファイル形式チェック、データベースドキュメント制約、自動テストデータ検証、IDEスマート補完設定に使用されます。現代のWeb開発におけるデータ仕様の重要なツールです。

Q: このツールが生成するSchemaバージョンは?

A: このツールはJSON Schema Draft-07仕様に従ってSchemaを生成します。これは最も広くサポートされているバージョンで、ほとんどの検証ライブラリとツールチェーンと互換性があります。

Q: 複雑な配列型はどのように処理されますか?

A: ツールは配列要素の構造を自動的に分析します。要素がオブジェクトの場合、items定義が生成されます。型が一貫していない場合、anyOfまたはoneOfで複数の可能な型を表します。空の配列は空のitems定義を生成します。

Q: requiredフィールドとは何ですか?

A: requiredは存在する必要があるプロパティ名をリストする文字列配列です。プロパティがrequiredにある場合、検証時に欠落できません。requiredにないプロパティはオプションです。

Q: 生成されたSchemaをプロジェクトで使用するには?

A: Ajv、jsonschemaなどの検証ライブラリを使用してデータ検証を行います。Node.jsで:const Ajv = require('ajv'); const validate = new Ajv().compile(schema); const valid = validate(data);。React、VueなどのフロントエンドフレームワークにはJSON Schemaをサポートするフォーム検証コンポーネントがあります。

Q: additionalProperties: falseは何をしますか?

A: この設定はSchemaで定義されていない追加プロパティを禁止します。データ構造を厳密に制御する必要があるシナリオで有用で、偶発的なフィールド汚染を防ぎますが、厳格すぎると互換性の問題が発生する可能性があります。

Q: カスタム検証ルールを追加できますか?

A: はい、生成後にSchemaを手動で編集してより多くの制約を追加できます。JSON Schemaは豊富な検証キーワードをサポートしています:minimum/maximum(数値範囲)、minLength/maxLength(文字列長)、pattern(正規表現マッチ)、enum(列挙値)、format(email、uriなどの定義済み形式)など。

Q: TypeScript型からJSON Schemaを生成するには?

A: このツールはJSONデータからSchemaを推測します。TypeScript型からSchemaを生成するには、typescript-json-schemaなどのツールを使用するか、まずサンプルJSONデータを作成してからこのツールを使用します。