JSON 生成
テンプレートを書かずにランダムJSONをすぐ生成できます。13種類のフィールド、件数や範囲の指定、配列出力に対応し、フロントエンド連携やAPIテストに便利です。
関連おすすめ
JSON生成ツールとMockテストデータについて
JSON生成ツールは、宣言的に定義したフィールド構造に沿ってランダムなJSONデータをワンクリックで作成するツールです。主にフロントエンド開発、バックエンド連携、テスト自動化の3つの場面で役立ちます。
一般的なJSON生成ツールは、テンプレート構文型とビジュアル構築型の2種類に分かれます。前者は柔軟ですが学習コストが高く、後者はGUIでフィールドを追加するだけなので導入しやすいのが特長です。
Mockデータとは、本番の業務データを模した架空データです。実際のAPIと同じ構造を持ち、値の範囲が自然で、典型的な利用シーンを再現できることが重要です。
このツールの13種類のフィールド型は、基本値、業務フィールド、長文、Enum、配列など、APIテストに必要な代表的なパターンをほぼカバーします。すべての処理はJavaScriptでローカル実行されます。
再現可能なテストデータが必要な場合は、一度生成した結果を generated.json として保存し、fixture として再利用するのがおすすめです。
ユースケース
- フロントエンドでユーザー一覧、商品カード、注文詳細などのUIを描画するための安定したMockデータが必要なとき
- バックエンドAPIがまだ未完成で、画面連携を先に進めるために仮データを用意したいとき
- QAが自動APIテストのために、値の異なる大量レコードをまとめて作りたいとき
- Swagger / OpenAPI や社内APIドキュメント用に、構造の整ったサンプルJSONをすばやく用意したいとき
- 負荷試験や性能試験の前に、一定構造の大量データを準備したいとき
- データ移行スクリプトやデータクレンジング処理の検証用に、サンプルJSONを作りたいとき
- 技術記事、スライド、研修資料などで見栄えのよいJSON例を載せたいとき
- フォーム検証やローカルキャッシュ処理で、極端値や空値などの境界ケースを試したいとき
使い方
- 左側のSchemaビルダーで、標準サンプル(id / name / email / age / active / createdAt / bio)を確認するか、+ ボタンで独自フィールドを追加します
- 各フィールドに名前と型を設定します。数値や段落型では min / max、Enum では候補値を入力できます
- 「配列として生成」をオンにして件数を 1〜1000 に設定するか、オフにして単一オブジェクトを生成します
- 右上の「生成」を押すと、右側エディタに整形済みJSONとフィールド数・件数が表示されます
- 「コピー」でそのまま利用するか、「ダウンロード」で generated.json として保存します
特徴
- 13種類の組み込みフィールド型: String / Integer / Number / Boolean / Email / Name / UUID / Date / URL / Phone / Paragraph / Enum / Array をすぐ利用可能
- ビジュアルフィールドビルダー: GUIでフィールド追加・削除、名前と型の設定ができ、JSONテンプレートを手書きする必要がありません
- 数値と段落の範囲指定: Integer / Number / Paragraph は min と max を設定でき、実務に近いデータを作れます
- Enumのカスタム値: admin,user,guest のようなカンマ区切り候補を入力し、離散値をランダム生成できます
- 単一オブジェクトと配列を切替: 配列生成チェックと件数入力で、1件のJSONと複数件の配列をすばやく切り替えられます
- サンプルSchemaを即読み込み: id / name / email / age / active / createdAt / bio の7項目サンプルをすぐ使えます
- シンタックスハイライト付き出力: 右側のCodeMirrorでJSON結果をリアルタイム表示し、行番号付きで確認できます
- コピーとダウンロードをワンクリックで実行: 生成結果をそのままコピー、または generated.json として保存できます
- 完全ローカル処理: フィールド設定もデータ生成もブラウザ内で完結し、サーバーへアップロードされません
- デスクトップとモバイルに対応: PCでは分割レイアウト、モバイルでは入力/出力タブに切り替わり操作しやすい構成です
コード例
JavaScript: 生成データを fetch で API 連携に使う
javascriptダウンロードした generated.json をローカル mock ディレクトリに置き、fetch でそのまま利用する例です。
// Put generated.json under /public/mock/users.json
// Then fetch it as Mock data
async function fetchMockUsers() {
const res = await fetch('/mock/users.json');
const users = await res.json();
console.log(`Loaded ${users.length} users`);
return users;
}
// Or inline directly in code (great for test cases)
const mockUsers = [
{ id: 1, name: 'Jennifer Martinez', email: 'jennifer.martinez382@example.com', age: 42, active: true },
{ id: 2, name: 'Robert Smith', email: 'robert.smith918@test.org', age: 67, active: false }
];
// Or import it as a fixture in Jest / Vitest
import users from './fixtures/users.json';
test('renders user list', () => {
render(<UserList users={users} />);
expect(screen.getAllByRole('listitem')).toHaveLength(users.length);
});Python: Faker でより複雑なMockデータを作る
python組み込み13型で足りない場合は、Python Faker を併用するとより多くのローカライズ済みデータを生成できます。
# Install: pip install faker
from faker import Faker
import json
fake = Faker('zh_CN') # Chinese localization
# Generate a single user
def gen_user():
return {
"id": fake.random_int(min=1, max=99999),
"name": fake.name(),
"email": fake.email(),
"phone": fake.phone_number(),
"address": fake.address(),
"company": fake.company(),
"created_at": fake.iso8601()
}
# Generate 100 records and write them to generated.json
users = [gen_user() for _ in range(100)]
with open('generated.json', 'w', encoding='utf-8') as f:
json.dump(users, f, ensure_ascii=False, indent=2)
print(f"Generated {len(users)} user records")CLI: curl + jq で生成データを API に POST する
bash負荷試験や初期データ投入時に、generated.json をそのまま API に送る例です。
# Assume generated.json is in the current directory and the target endpoint is POST /api/users
# Bulk seed data
for i in $(seq 1 10); do
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d @generated.json | jq '.'
done
# Or extract a single record with jq and POST it
cat generated.json | jq '.[0]' | \
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d @-よくある質問
JSON生成ツールは何に使えますか?どう使いますか?
指定した構造に合わせてランダムなJSONデータを一括生成するツールで、フロントエンドのMock、API連携、テストデータ作成によく使われます。左側のSchemaビルダーでフィールド名と型を設定し、必要に応じて範囲やEnum値、件数を指定してから「生成」を押すと、右側に結果が表示され、コピーまたはダウンロードできます。
どのフィールド型に対応していますか?
String、Integer、Number、Boolean、Email、Name、UUID、Date、URL、Phone、Paragraph、Enum、Array の13種類に対応しています。基本的な型から、メール、日時、UUID などAPIテストでよく使う型までカバーします。
生成件数は変更できますか?一度に1000件まで作れますか?
はい。「配列として生成」をオンにして 1〜1000 の件数を入力すると、その数だけオブジェクト配列を生成できます。1000件はツール上限ですが、多くのMock作成や簡易負荷テストには十分です。
Enumフィールドはどう使いますか?値は自由に設定できますか?
フィールド型を Enum にすると入力欄が表示されます。admin,user,guest や high,medium,low のようにカンマ区切りで候補を入れると、生成時にその中からランダムに1つ選ばれます。
数値や段落の範囲は指定できますか?
できます。Integer と Number では min / max、Paragraph では単語数の min / max を指定できます。より実データに近い範囲でランダム値を作りたいときに便利です。
生成されるUUIDは標準に準拠していますか?
はい。UUID は RFC 4122 v4 に準拠して生成され、バージョンビットとバリアントビットも正しく設定されます。主キー、注文ID、追跡IDなどのサンプルに使えます。
生成結果はワンクリックでコピーやダウンロードできますか?
できます。ツールバーの「コピー」で整形済みJSONをクリップボードへ送れます。「ダウンロード」を押すと generated.json として保存されます。
JSON生成とJSONフォーマットの違いは何ですか?
JSON生成は新しいランダムデータを作るためのもので、Mockやテスト向けです。JSONフォーマットは既存JSONを整形・検証するためのもので、用途が異なります。
生成データはサーバーへ送信されますか?安全ですか?
送信されません。フィールド構築、データ生成、コピー、ダウンロードのすべてがブラウザ内でローカル実行されます。内部APIの構造や未公開仕様でも安心して使えます。
生成した結果をAPIテストにそのまま使うには?
Postman や Apifox などの Body に貼り付ける、Jest や Pytest の fixture として読み込む、あるいは generated.json をローカルmockディレクトリに置く方法が一般的です。
生成されるNameやEmailは実在データですか?
いいえ。組み込みの英語名辞書とテスト用ドメインを使って作られる架空データです。実運用の本人確認や実メール送信には使わないでください。
配列ではなく1件だけ生成できますか?
はい。「配列として生成」をオフにすれば、単一のJSONオブジェクトだけを出力できます。APIの単体確認やドキュメント例に向いています。
トラブルシューティング
生成を押すと「少なくとも1つのフィールドを追加してください」と表示される
有効なフィールド名を持つ行がSchema内にない状態です。左側ビルダーで各行にフィールド名を入力してください。空の名前の行は自動的に無視されます。
生成結果のフィールド順が左側と一致しない
JSON仕様上は順序保証がありませんが、このツールはSchemaで追加した順に出力します。途中で削除・再追加したフィールドがないか確認し、必要なら目的の順序で入れ直してください。
Enumフィールドがいつも空文字になる
Enumの候補値入力欄が空、またはカンマだけになっている可能性があります。少なくとも1つ以上の有効な候補を入力してください。
数値フィールドが NaN や undefined になる
min / max に空欄以外の不正値が入っているケースが多いです。数値だけ入力するか、空欄にして既定値を使ってください。
Paragraphフィールドの文章が自然に見えない
Paragraph は lorem 系の単語をランダムに並べるため、自然文ではありません。UI確認なら十分ですが、自然文が必要なら Faker などの外部ライブラリを使うのがおすすめです。
ダウンロードした generated.json が見つからない
通常はブラウザの既定ダウンロードフォルダに保存されます。モバイル端末ではダウンロード一覧を開いて確認してください。
配列ではなく単一のJSONだけ生成したい
Schemaビルダー下部の「配列として生成」をオフにしてください。件数入力に関係なく、1件のJSONオブジェクトだけが出力されます。
1000件生成するとページが重い
1000件はブラウザ描画としてはかなり多めです。必要なら 500 件ずつ分けて生成するか、コピー・ダウンロード後に別ツールで扱うと快適です。
用語集
- JSON
- JavaScript Object Notation の略で、キーと値、配列で構成される軽量なデータ交換形式です。Web APIで広く使われています。
- Mockデータ
- 実際の業務データを模した架空データで、フロントエンド開発、API連携、テスト自動化でよく使われます。
- Schema
- データ構造を定義するものです。このツールでは左側ビルダーで設定するフィールド名と型の集合を指します。
- UUID (v4)
- RFC 4122 で定義される128ビットの一意識別子です。v4は乱数ベースで生成され、衝突しにくいのが特長です。
- Field Type
- 各フィールドに指定するデータ型です。指定した型によって生成される値の形式が変わります。
- Enum
- 定義済みの候補値の中からランダムに1つを選ぶ型です。役割、状態、レベルなどの表現に向いています。
- min / max
- Integer、Number、Paragraph で使える範囲指定です。ランダム値を自然な範囲に収めたいときに使います。
- 単一オブジェクト / 配列出力
- このツールでは1件の JSON オブジェクト {} と、複数件の配列 [...] の2つの出力モードを切り替えられます。
- RFC 4122
- UUID の形式、バージョン、バリアントを定義する国際仕様です。このツールのUUIDは v4 に準拠します。
- CodeMirror
- ブラウザ向けコードエディタコンポーネントです。出力パネルでJSONのシンタックスハイライトと行番号表示に使われています。
- ローカル処理
- すべての生成処理がユーザーのブラウザ内で完結し、外部サーバーへデータを送らない実行方式です。
- Fixture
- テストで繰り返し利用する固定サンプルデータファイルです。生成結果を保存して回帰テストに使えます。
フィールド型と生成ルールの早見表
13種類の組み込みフィールド型について、生成ルール、例、用途をまとめています。
| フィールド型 | 生成ルール | 例 | 主な用途 |
|---|---|---|---|
String | a-z と 0-9 をランダムに組み合わせ、長さは min-max(既定 5-20) | a8f3k0d2 | ランダム文字列、ID接頭辞、トークン |
Integer | 閉区間 [min, max] のランダム整数(既定 0-100) | 42 | 年齢、数量、件数、並び順 |
Number | 閉区間 [min, max] のランダム小数(小数点2桁) | 73.28 | 価格、評価、座標、確率 |
Boolean | true / false を同確率で生成 | true | 有効/無効、削除フラグ、スイッチ状態 |
Email | firstName.lastName + 1-999 + テスト用ドメイン | james.smith247@example.com | ユーザーのメール、通知先 |
Name | 組み込みの英語名辞書からランダム結合 | Jennifer Martinez | ユーザー名、顧客名、著者名 |
UUID | RFC 4122 v4 準拠、バージョンビットとバリアントビットを含む | f47ac10b-58cc-4372-a567-0e02b2c3d479 | 主キーID、注文番号、追跡ID |
Date | 2020-01-01 から現在までの ISO 8601 タイムスタンプ | 2024-08-15T07:23:11.000Z | 作成日時、更新日時、有効日 |
URL | https://www.{test domain}/{word}-{1-999} | https://www.test.org/lorem-742 | 画像URL、遷移先、リソースURL |
Phone | +1-XXX-XXX-XXXX の米国形式電話番号 | +1-415-308-7241 | 連絡先、サポート番号 |
Paragraph | min-max 語の lorem 段落(既定 10-50) | lorem ipsum dolor sit amet ... | 自己紹介、備考、説明、コメント |
Enum | カンマ区切りの候補値からランダム選択 | admin | 役割、状態、レベル、種別 |
Array | 1-5 個の String 要素からなる配列 | ["a8f", "k0d", "92x"] | タグ、キーワード、補助フィールド |
よくあるJSON生成シーンと推奨フィールド構成
APIテストでよく使うシーンごとのフィールド構成例です。
| シーン | 推奨フィールド構成 | 推奨件数 |
|---|---|---|
| ユーザー一覧API | id (Integer) + name (Name) + email (Email) + age (Integer 18-80) + active (Boolean) + createdAt (Date) + bio (Paragraph) | 20-50 |
| 商品一覧API | id (Integer) + name (String) + price (Number 10-9999) + stock (Integer) + category (Enum: electronics,clothing,food,book) + imageUrl (URL) | 30-100 |
| 注文API | orderId (UUID) + userId (Integer) + amount (Number 1-10000) + status (Enum: pending,paid,shipped,delivered) + createdAt (Date) | 10-30 |
| ブログ記事一覧 | id (Integer) + title (String) + author (Name) + content (Paragraph 50-200) + tags (Array) + publishedAt (Date) | 10-20 |
| コメント一覧 | id (Integer) + author (Name) + email (Email) + content (Paragraph) + rating (Integer 1-5) + createdAt (Date) | 50-200 |
| アドレス帳API | id (Integer) + name (Name) + phone (Phone) + city (String) + zipcode (String) + isDefault (Boolean) | 5-10 |
Privacy & Security
このJSON生成ツールでは、フィールド設定、ランダムデータ生成、コピー、ダウンロードのすべてがブラウザ内のJavaScriptで完結します。定義したSchema、生成したデータ、フィールド名、件数はいずれもサーバーへ送信・記録・キャッシュ・クラウド保存されません。内部API仕様や未公開構造、機微なテストデータでも安心して利用できます。
Authoritative References
- JSON 圧縮
- CSV to JSON
- JSON から CSV
- JSON Diff
- JSON Escape / Unescape
- JSONフラット化
- JSON フォーマッター
- JSON 生成
- JSONPath オンラインクエリ
- JSON マージ
- JSON 修復
- JSON Schema バリデーター
- JSONソート
- JSON Stringify
- JSONをHTMLに変換
- JSONからJavaへ
- JSON から Markdown
- JSON を SQL に変換
- JSON から TOML へ変換
- JSONをTypeScriptに変換
- XML を JSON に変換
- JSONをXMLへ変換
- YAML を JSON に変換
- JSON → YAML 変換
- JSON から Go へ
- JSON から Rust
- JSON から Swift
- JSON から C#
- JSON から C++
- JSON を PHP に
- JSON から Python