JSON Schema ジェネレーター
JSONデータから標準準拠のJSON Schema定義を自動生成
// JSON Schemaが自動的に生成されますJSON Schemaとは?
JSON SchemaはJSONデータ構造を記述・検証するための仕様です。構造、データ型、制約のルールを定義し、API検証、フォーム検証、設定ファイル検証などで広く使用されています。
JSON Schemaでできること:
- データ検証:JSONデータが期待される形式と制約に一致するか検証
- ドキュメント生成:APIドキュメントと型定義を自動生成
- コードインテリジェンス:IDEでスマート補完と型チェックを取得
- 自動テスト:テストでレスポンスデータ形式を自動検証
このツールはJSON Schema Draft-07仕様をサポートし、ネストオブジェクト、配列型、列挙値などの複雑な構造をインテリジェントに推測します。
使い方
- 左の入力ボックスにJSONデータを貼り付けるか、サンプルをクリックしてサンプルデータをロード
- オプションを設定:Schema IDを設定、すべてのフィールドを必須にするか、デフォルト値を追加するかなど
- 対応するJSON Schema定義が右側に自動生成されます
- コピーをクリックして生成されたSchemaをクリップボードにコピー
- 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データを作成してからこのツールを使用します。