JSONデータを型ヒント付きのPythonクラス定義コードに自動変換します。APIや設定ファイルのデータモデリングに最適です。
APIからのJSONレスポンスや設定ファイルなどの構造化データを、Pythonプロジェクトで扱いやすいクラスオブジェクトとしてモデリングする際、手作業でクラスを定義するのは煩雑でエラーが発生しやすくなります。本ツールは、入力されたJSONデータを解析し、そのネスト構造とキー・バリューのペアに基づいて、型ヒント(Type Hints)を含むPythonクラス定義コードを自動生成します。JSONオブジェクトは本質的にキーと値のペアの集合であり、本ツールはそれをPythonクラスの属性にマッピングし、各属性のデータ型(str、int、list、dictなど)を推論します。
firstNameやzip-code)を、Pythonの命名規則に準拠したスネークケース(例:first_name、zip_code)に自動変換するため、そのままですぐに使用できます。name: str)を採用しています。これにより、コードの可読性とIDEのサポートが向上し、静的型チェックが容易になります。Q:どのような形式のJSONを入力すれば正しく変換されますか?
A:本ツールは、オブジェクト({})または配列([])形式の標準的なJSON文字列を受け付けます。文字列がダブルクォーテーションで囲まれているか、末尾に余分なカンマがないかなど、JSONの構文が正しいことを確認してください。
Q:JSON配列はどのように処理されますか?
A:これは多くのユーザーから寄せられる質問です。JSONの最上位が配列の場合、ツールは配列内の要素(通常はオブジェクト)の共通構造を分析し、それに基づいてPythonクラスを生成します。例えば、[{"id": 1, "name": "a"}, {"id": 2, "name": "b"}] と入力すると、id: int と name: str 属性を持つ Root という名前のクラスが生成されます。
入力するJSONフォーマットが有効であることを確認してください。無効な場合は解析できません。ツールの型推論はJSONのネイティブ型(null、boolean、number、string、array、object)に基づいています。混合型の配列(例:[123, "text"])の場合、属性の型は広範な Any や Union として推論される可能性があるため、ビジネスロジックに応じて手動で調整する必要があります。生成されるコードはデータモデルの定義のみであり、JSONのデシリアライズ(例:from_dict)やシリアライズのロジックは含まれていません。完全に機能させるには、json.loads() やサードパーティのライブラリ(Pydanticなど)と組み合わせる必要がある場合があります。
強力なデータ検証とシリアライズが必要なシナリオでは、生成されたクラスコードをPydanticモデルの基底クラスとして使用することをお勧めします。Pydanticは型ヒントに基づいてデータの解析と検証を自動的に行います。例えば、生成された class User: を from pydantic import BaseModel; class User(BaseModel): に変更するだけで、JSONからモデルインスタンスへの変換(User.parse_raw(json_string))を簡単に実装できます。典型的な入出力の例:{"userName": "Alice", "age": 30, "hobbies": ["coding", "reading"]} と入力すると、出力されるクラス定義には user_name: str、age: int、hobbies: List[str] などの属性が含まれます。