Skip to content

JSON to Python クラスコンバーター

JSONを貼り付けるだけで、Pythonクラスを即座に生成。dataclass・Pydantic v2・TypedDictの3モード。Optional型やcamelCaseエイリアス、ネストクラスも正確に。100%ブラウザ内、無料。

トラッキングなし ブラウザで動作 無料
出力
0 文字
Python 出力
0
実際のAPIペイロードに対して、Python 3.12+の構文とPydantic v2のセマンティクスに照らして検証済みです。 — Go Tools Team · Jul 3, 2026

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. 1

    JSONを貼り付ける

    JSONオブジェクト・配列・APIレスポンスを入力欄に入れてください。変換は即座に始まります。

  2. 2

    dataclass・Pydantic・TypedDictを選ぶ

    出力スタイルを切り替えてプロジェクトに合わせ、ルートクラスをデフォルトのRootから変更してください。

  3. 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クラスに変換するには?
入力欄にJSONを貼り付けてください。コンバーターはブラウザ内で即座に解析し、右側にPythonを生成します。トグルでdataclass・Pydantic v2・TypedDictを選び、「コピー」をクリックしてください — アップロードも、アカウントも、待ち時間もありません。
dataclass・Pydantic・TypedDictの出力の違いは?
dataclassは依存関係のない標準ライブラリの@dataclassを生成します — 素朴なデータ保持に最適です。Pydantic v2は、実行時にデータを検証・強制変換するBaseModelクラスを出力し、信頼できないAPIレスポンスの解析に理想的です。TypedDictは、実行時コストゼロで静的型チェッカー(mypy、Pyright)向けにプレーンなdictの形状を記述します。モードを切り替えて、同じJSONをそれぞれで比較できます。
JSONからPydanticモデルを生成するには?
「Pydantic v2」タブを選んでください。フィールドはsnake_caseに変換され、Field(alias="originalKey")が付くため、モデルはcamelCaseのJSONをそのまま読み取れます。また、model_config = ConfigDict(populate_by_name=True)によりフィールド名でも構築できます。Root.model_validate(data)でペイロードを解析すると — Pydanticが型を検証し、不正な入力には明確なエラーを送出します。
dataclassの出力はcamelCaseのキーをどう扱いますか?
dataclassには組み込みのエイリアスがないため、Root(**data)を機能させ続けるべく、dataclassモードでは有効なPython識別子である限り元のキーをフィールド名として保持します(publicReposはpublicReposのまま)。慣用的なsnake_caseとエイリアスが必要なら、代わりにPydantic v2モードを使ってください。snake_caseのフィールドを正確なJSONキーへマッピングし直します。
オプショナルフィールドやnullフィールドはどう型付けされますか?
あるキーが一部の配列項目にのみ存在し他には存在しない場合、その型はOptionalでラップされます。常にnullだけのフィールドはOptional[Any]になります。JSONのnull単体は型情報を持たないためです。値が埋まった代表的なサンプルを貼り付けると、Anyより具体的な型が得られます。
各JSON値はどのPython型にマッピングされますか?
文字列はstr、真偽値はbool、整数はint、小数点や指数を伴う数値はfloatにマッピングされます。Pythonの整数は任意精度のため、巨大なIDもintのまま保たれ — 64ビットのオーバーフローは起きません。空配列や型が混在する配列はList[Any]になり、オブジェクトはネストしたクラスになります。
ネストしたオブジェクトやオブジェクトの配列は扱えますか?
はい。ネストされた各オブジェクトはそれぞれ独自の名前付きクラスになり、同一の形状は重複排除されて、すべてのフィールドで再利用される1つのクラスにまとめられます。オブジェクトの配列はキーごとにマージされるため、要素クラスは1つになり、一部の項目に存在しないキーはOptionalとしてマークされます。子クラスは、それを使用するクラスより常に先に出力されます。
Pythonのキーワードや識別子でないキーはどう扱われますか?
Pythonのキーワード(class、from、import)であるJSONキーには末尾にアンダースコアが付きます(class_)。ハイフン・スペース・先頭の数字を含むキーは、dataclassとPydanticモードでは有効な識別子にサニタイズされます。TypedDictモードでは、識別子でないキーを含むdictは関数型のTypedDict('Name', {...})構文で出力されるため、"first-name"のような正確なキーが保持されます。
生成されたdataclassを使ってJSONを解析するには?
フラットなオブジェクトなら、json.loadsの後にRoot(**data)がそのまま機能します。ネストした構造の場合、dataclassは自動的に再帰しません — 子オブジェクトを自分で構築するか、daciteやpydantic.dataclassesのようなライブラリを使うか、このツールをPydantic v2モードに切り替えてください。Pydanticモードでは、Root.model_validate(json.loads(text))が1回の呼び出しでツリー全体を解析します。
私のJSONデータはプライベートで安全ですか?
はい。変換はJavaScriptを使用して100%ブラウザ内で行われます。トークン・ID・顧客データを含むあなたの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進の出力に対応、アップロードは一切なし。