JSON to Python クラスコンバーター
JSONを貼り付けるだけで、Pythonクラスを即座に生成。dataclass・Pydantic v2・TypedDictの3モード。Optional型やcamelCaseエイリアス、ネストクラスも正確に。100%ブラウザ内、無料。
JSON to Python 変換とは?
JSON to Python変換は、JSONサンプルを、すぐに使えるPythonクラス — 標準ライブラリのdataclass、Pydantic v2モデル、またはTypedDict — に変換します。そのため、APIレスポンスや設定ファイルのためにフィールド定義を手書きする必要がなくなります。このPythonクラスジェネレーターは、正しい型(int、float、str、bool、Optional)を推論し、ネストされたオブジェクトを名前付きクラスに変え、camelCaseのキーにはPydanticのエイリアスを追加します — すべて100%ブラウザ内で行われます。
サンプル
APIレスポンス → dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
典型的なRESTペイロードは、そのまま使える@dataclassになります。整数はint、小数はfloatと推論され、配列はList[str]になります。
ネストオブジェクト(子クラスが先)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
ネストされたオブジェクトは、個別の名前付きクラスになります。子クラス(Owner)は親より先に出力されるため、from __future__ import annotationsなしでコードが動作します。
camelCase → Pydantic v2 エイリアス
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
Pydanticモードでは、フィールドはsnake_caseになり、Field(alias=...)が元のJSONキーへマッピングし直します。populate_by_nameによりどちらの名前でもモデルを構築でき、実際のAPIデータをそのままバリデーションでラウンドトリップできます。
オブジェクトの配列 → TypedDict(オプショナルキー)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
オブジェクトの配列は1つの要素型にマージされます。一部の項目に存在しないキー(nick)はOptionalになります。TypedDictは、実行時オーバーヘッドゼロでプレーンなdictの形状を記述します。
JSONをPythonに変換する方法
- 1
JSONを貼り付ける
JSONオブジェクト・配列・APIレスポンスを入力欄に入れてください。変換は即座に始まります。
- 2
dataclass・Pydantic・TypedDictを選ぶ
出力スタイルを切り替えてプロジェクトに合わせ、ルートクラスをデフォルトのRootから変更してください。
- 3
コピーまたはダウンロード
生成されたPythonをワンクリックで取得し、コードにそのまま貼り付けてください。
Common Use Cases
- 型付きAPIクライアント
- RESTやGraphQLのレスポンスサンプルを、requestsやhttpxのクライアント向けのPydanticモデルやdataclassに変換します。フィールド定義を手書きする必要はありません。
- 設定やフィクスチャの解析
- 読み込んで検証する必要のあるJSON設定ファイル、テストフィクスチャ、Webhookペイロードのモデルを生成します。
- 高速なプロトタイピングと型ヒント
- 見慣れないペイロードを貼り付けると、その形状がPythonの型として即座に表示されます — 新しいAPIを素早く探索したり、レガシーなdictコードにTypedDictのヒントを追加したりする方法です。
変換の仕組み
- 構造推論
- 各オブジェクトは名前付きクラスになります。同一の形状は重複排除されるため、コピーではなく1つのクラスが得られます。オブジェクトの配列はキーごとにマージされ、一部の項目に存在しないキーはOptionalになります。
- 3つの慣用的なターゲット
- dataclassは依存関係ゼロを保ち、Root(**data)のために有効なキーを保持します。Pydantic v2は本格的なバリデーションのためにFieldエイリアスとpopulate_by_nameを追加します。TypedDictは静的型チェッカー向けにプレーンなdictを記述し、キーが識別子でない場合は関数型構文を使います。
- 正しく、依存関係の少ない型付け
- 整数はint(任意精度、オーバーフローなし)、小数と指数はfloat、nullのみのフィールドはOptional[Any]にマッピングされます。typingのインポート(Optional、List、Any)は、実際に使われる場合にのみ追加されます。
- 100%クライアントサイド
- 解析と生成はネットワーク通信なしでブラウザ内で実行されるため、データはプライベートに保たれます。
クリーンなPythonモデルのためのヒント
- 用途にモードを合わせる
- 内部のデータ保持にはdataclass、信頼できない入力を検証・解析するときはPydantic v2、既存のdictに静的な型ヒントだけが必要なときはTypedDictを使ってください。
- 代表的なサンプルを貼り付ける
- フィールドがOptionalとしてマークされるのは、サンプルがそれを省略している場合だけで、nullのみの値はAnyにフォールバックします。値が埋まった完全な例が、最も正確な型をもたらします。
- ルートクラスに名前を付ける
- 読みやすくインポート可能なコードのために、デフォルトのRootではなく意味のあるルート名(User、ApiResponse)を設定してください。
よくある質問
JSONをPythonクラスに変換するには?
dataclass・Pydantic・TypedDictの出力の違いは?
JSONからPydanticモデルを生成するには?
dataclassの出力はcamelCaseのキーをどう扱いますか?
オプショナルフィールドやnullフィールドはどう型付けされますか?
各JSON値はどのPython型にマッピングされますか?
ネストしたオブジェクトやオブジェクトの配列は扱えますか?
Pythonのキーワードや識別子でないキーはどう扱われますか?
生成されたdataclassを使ってJSONを解析するには?
私のJSONデータはプライベートで安全ですか?
このツールは無料ですか?アカウントは必要ですか?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
Base64 画像変換ツール
エンコーディングとフォーマット
Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。
CSV to JSON 変換ツール
エンコーディングとフォーマット
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
.env から JSON への変換ツール
エンコーディングとフォーマット
.env ファイルを貼り付けるだけで即座に JSON に変換。データベースのパスワードや API キー、トークンはブラウザから一切出ません。100% プライベート、アップロード不要、無料の dotenv パーサー。
無料HTMLエンティティデコーダー — HTMLをアンエスケープ
エンコーディングとフォーマット
HTMLエンティティをデコードし、HTMLをオンラインでアンエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の参照を文字に戻します。アップロードは一切なし。
無料HTMLエンティティエンコーダー — HTMLをエスケープ
エンコーディングとフォーマット
HTMLエンティティをエンコードし、特殊文字(< > & " ')をオンラインでエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の出力に対応、アップロードは一切なし。