スキーマと型生成

JSON Schemaモックデータ生成契約から再現可能なサンプルへ

件数とシードを指定すると、各サンプルをスキーマで検証します。

JSON Schemaモックデータ生成

JSON Schema

生成結果

スキーマとデータはこのブラウザー内で処理され、送信されません。

生成設定

各レコードが入力スキーマに個別に適合します。

スキーマを確認して生成してください。

JSON Schemaモックデータ生成は、API契約はあるのにテスト用のレコードが足りないときに使えます。本番データを複製する代わりに、必要なフィールドや値の範囲をスキーマで指定してください。

テストデータ生成では、件数と配列の長さを分けて考えます。件数は独立したサンプルの数、itemsやminItemsは各サンプルの内部構造を決めるものです。

JSON Schemaモックデータ生成を使う理由

同じ不具合を再現する

スキーマ、シード、設定をまとめて保存すれば、同じエンジン版で同じデータを再現できます。再現可能なモックをテストと一緒に管理することで、失敗した状況を共有できます。

同じシードから同一の二組のサンプルが作られる様子。

有効な端点を試す

境界モードでは数値や長さ、要素数の実現可能な最小・最大付近を選びます。候補は独立した検証を通過する必要があり、未対応制約を適当な値で置き換えることはありません。

有効な端点のサンプルが検証を通過し、未対応の制約は止められる様子。

再現できる条件をそろえる

01

根の型を確認する

初期値は5件、シード42です。根が配列なら各サンプルも配列になります。内側の長さはSchemaのminItemsとmaxItemsで指定してください。 シードは0〜4294967295の整数です。

02

準備ができてから生成する

通常または境界モードを選び、生成かCtrl/Cmd+Enterを実行します。入力や設定の変更で古い結果の書き出しは無効になります。停止で実行中の処理を取り消せます。

03

置換と書き出しを確認する

サンプルやクリアは置換プレビュー後に適用し、一度元に戻せます。未対応の位置を修正して再生成してください。JSONLなら各行に完全なJSON値を一つ保存します。

生成時に確認する内容

任意とnullを区別

properties、required、additionalPropertiesでオブジェクトを構成します。任意フィールドの省略とnullの格納は別の操作で、nullには許可する型が必要です。

制約の共通部分

typeの配列、enum、constは隣接する制約と同時に評価します。列挙値でも数値の上限を超えるなら採用されません。

配列内の一意性

uniqueItemsはそれぞれの配列に作用し、バッチ全体のレコードを一意にはしません。文字列長、項目数、プロパティ数の制限も反映します。

出力の包装

JSONは1件でも外側の配列に格納します。JSONLの各行はオブジェクトに限らず配列やプリミティブでも構いません。入力Schemaが対象とするのは包装ではなく各レコードです。 JSONは2スペース固定、JSONLは各インスタンスを1行に収めます。

対応範囲と制限

draft-07の明示的な部分集合
Boolean Schema、type配列、enum、const、properties、required、additionalProperties、単一Schemaのitems、uniqueItems、長さと個数、数値の包含・排他的境界を扱います。typeを明示してください。制約だけでは別の型も許可される場合があります。trueは単純な整数を生成します。
未対応を無視しない
参照、合成、条件、pattern、format、multipleOf、タプルitems、不明なキーワードは位置付きで拒否します。enumとconst内のリテラルオブジェクトはSchemaとして走査しません。
境界は網羅を意味しない
境界モードも有効なサンプルを作ります。すべての端点や組み合わせの網羅、無効データの注入は行いません。値域が狭ければ別のシードでも結果が同じことがあります。
入力と生成の上限
1〜100件。Schemaは100000文字、構文木の深さ12(propertiesやenumのコンテナーも含む)、構文木2000ノードまで。生成文字列は1000 UTF-16コード単位、配列とオブジェクトは100項目まで。試行数、総操作数、ワーカー5秒の上限もあります。 総操作数は20000回、出力は1000000文字までです。 constとenumの値にも文字列・集合の上限が適用されます。シードは0〜4294967295の整数です。
生成失敗の意味
矛盾した条件、一意値不足、処理予算の消費で失敗する場合があります。予算超過だけではSchemaに解がないと断定できません。
合成データに限定
人名・住所のデータベース、地域別データ、項目間の相関、Mock API、URL読込、クラウド保存はありません。対応精度を超える数値は丸めて続行せず拒否します。 数値は有限で、整数はJavaScriptの安全な整数範囲内に限ります。数値トークンをNumber経由で文字列に戻したとき、十進値が変わるものは拒否します。

JSON Schemaモックデータ生成の質問

スキーマからモックJSONを作るには?

JSON Schemaモックデータ生成にスキーマを貼り付け、件数とシードを指定して生成します。draft-07の対応範囲だけを使い、出力の各レコードを独立して扱ってください。

任意フィールドも生成できますか?

対応するpropertiesから任意フィールドも生成対象になります。ただし必ず全項目を埋める保証はありません。値を生成できない任意項目は省略でき、requiredなら省略できません。

配列の要素数を指定できますか?

はい。Schema内のminItemsとmaxItemsで各配列を指定します。面板の件数は独立した根のサンプル数であり、内側の配列長ではありません。

生成結果をそのまま本番で使えますか?

テストやデモ用の合成値です。サンプルJSONが構造上有効でも、業務上の整合性や実在する連絡先を保証しません。用途に応じた確認が必要です。

スキーマはサーバーに送信されますか?

送信されません。解析、生成、検証は読み込まれたブラウザー内で行い、外部参照も取得しません。

対応してほしい制約がありますか?

JSON Schemaモックデータ生成を試す

JSON Schemaモックデータ生成で少数のサンプルを作り、通常モードと境界モードでテストの狙いを確認しましょう。

結果だけでなくスキーマ、シード、設定も保存すると、同じケースを他の開発者と共有できます。