UTILS.
100% ブラウザ内で完結
🐍

JSON から Pydantic モデルへ

JSON サンプルを Python の Pydantic v2 モデルクラスに変換します。@dataclass や TypedDict 出力、snake_case のフィールドエイリアスのトグル付き。

出力

このツールについて

JSON から Pydantic モデルへのツールは、貼り付けた JSON サンプルを Python のモデルクラスに変換します。Python や FastAPI の開発者はサンプルの API レスポンスから Pydantic モデルを絶えず組み立てており、このコンバーターはそれをブラウザ内で即座に行います。JSON を解析し、Python の型を再帰的に推論して、オブジェクトごとに 1 つのクラスを出力します。文字列は str、ISO 日時文字列は datetime、日付のみの文字列は date、整数は int、その他の数値は float、真偽値は bool、配列は List[T]、ネストしたオブジェクトは PascalCase で名付けられた独自のモデルクラスになります。

解析と生成はすべて JSON.parse と純粋な JavaScript を使ってローカルで行われるため、貼り付けた内容がマシンから外に出ることはありません。子クラスは参照する側のクラスより前に出力され(トポロジカル順)、ヘッダーは実際に使われるものだけをインポートします。pydantic からの BaseModel と Field、typing からの Optional / List / Union / Any、必要に応じて datetime / date です。from __future__ import annotations は常に含まれるため、順序に関係なく前方参照が機能します。

一部の兄弟オブジェクトに欠けている、あるいは null として見られたキーは Optional[T] = None になります。出力モードトグルは Pydantic v2 BaseModel(既定)、標準ライブラリの @dataclass、typing.TypedDict を切り替えます。snake_case フィールドを有効にすると camelCase や無効なキーがリネームされ、自動的に Field(alias="originalKey") が追加されるため、モデルは元の JSON をそのまま解析できます。コードはコピーするか .py ファイルとしてダウンロードできます。

よくある質問

どの Python 型が推論されますか?
string は str、ISO 日時は datetime、日付のみは date、整数は int、非整数の数値は float、真偽値は bool、配列は要素からマージした T の List[T]、オブジェクトはネストした BaseModel クラスになります。null または欠損値は Optional[T] = None になります。
dataclass や TypedDict を代わりに得られますか?
はい。出力モードトグルは Pydantic v2 BaseModel(既定)、dataclasses のインポート付きの標準ライブラリ @dataclass、typing.TypedDict クラスを出力します。型推論は同じで、クラスの外殻とインポートだけが変わります。
識別子でないキーや camelCase のキーはどう扱われますか?
snake_case フィールドを有効にすると、userName のようなキーは user_name に加えて Field(alias="userName") が付き、ラウンドトリップできます。Python の予約語や無効な識別子であるキーは常にエイリアスされ、生成コードが有効になります。
クラスは正しく順序付けされますか?
はい。ネストした子クラスはそれを使う親クラスより前に宣言され、from __future__ import annotations が含まれるため、前方参照エラーなしにモデルがコンパイルされます。

その他のツール