JSON → Python Dataclass

JSON에서 Python dataclass를 즉시 생성. @dataclass, Pydantic v2 BaseModel, TypedDict 지원. 중첩 객체, 배열, 선택적 필드 처리. 무료, 브라우저에서 실행.

100% 클라이언트 사이드 데이터가 브라우저 밖으로 나가지 않습니다 무료 · 회원가입 불필요
모드
JSON 입력
Python 출력

사용 방법

  1. 왼쪽 패널에 JSON을 붙여넣거나 입력합니다. 도구가 실시간으로 유효성을 검사합니다.
  2. 선택적으로 루트 클래스 이름을 설정합니다 (기본값: Root).
  3. 출력 모드 선택: @dataclass, Pydantic v2, 또는 TypedDict.
  4. Python 생성을 클릭하거나 실시간 변환을 기다립니다.
  5. 복사를 클릭해 출력을 복사하거나, .py 다운로드로 파일로 저장합니다.

타입 매핑

  • nullOptional[Any] = None
  • 문자열 → str
  • 정수 → int
  • 부동소수점 → float
  • 불리언 → bool
  • 배열 → List[T]
  • 혼합 배열 → List[Union[T1, T2]]
  • 중첩 객체 → 별도 클래스

예시

다음 JSON이 주어졌을 때:

{"user": {"first_name": "Alice", "age": 30}, "tags": ["admin"], "note": null}

@dataclass 모드에서 생성되는 코드:

from dataclasses import dataclass
from typing import Any, List, Optional

@dataclass
class User:
    first_name: str
    age: int

@dataclass
class Root:
    user: User
    tags: List[str]
    note: Optional[Any] = None

FAQ

이 도구는 무엇을 생성하나요?

JSON에서 Python 클래스 정의를 생성합니다. 표준 @dataclass(stdlib), Pydantic v2 BaseModel, 또는 TypedDict 중에서 선택할 수 있습니다. 각 중첩 객체는 자체 명명된 클래스가 됩니다.

어떤 출력 모드를 지원하나요?

세 가지 모드: @dataclass(Python stdlib, 기본값), Pydantic v2 BaseModel, TypedDict(Python 3.8+).

JSON 타입은 Python 타입에 어떻게 매핑되나요?

string→str, integer→int, float→float, boolean→bool, null→Optional[Any], array→List[T], 중첩 객체→별도 클래스.

필드가 Optional이 되는 경우는?

JSON 샘플에서 필드 값이 null이거나, 배열 객체를 병합할 때 일부 객체에서 필드가 누락된 경우 해당 필드는 Optional[T] = None으로 표시됩니다.

중첩 객체는 어떻게 처리되나요?

각 중첩 객체는 필드 키를 PascalCase로 변환한 이름의 독립 클래스로 추출됩니다. 자식 클래스는 항상 부모 클래스보다 먼저 정의되어 출력을 바로 사용할 수 있습니다.

데이터가 서버로 전송되나요?

아니요. 모든 변환은 브라우저에서 실행됩니다. 데이터는 사용자의 기기를 벗어나지 않습니다.