JSON → Python Dataclass
JSON에서 Python dataclass를 즉시 생성. @dataclass, Pydantic v2 BaseModel, TypedDict 지원. 중첩 객체, 배열, 선택적 필드 처리. 무료, 브라우저에서 실행.
사용 방법
- 왼쪽 패널에 JSON을 붙여넣거나 입력합니다. 도구가 실시간으로 유효성을 검사합니다.
- 선택적으로 루트 클래스 이름을 설정합니다 (기본값:
Root). - 출력 모드 선택: @dataclass, Pydantic v2, 또는 TypedDict.
- Python 생성을 클릭하거나 실시간 변환을 기다립니다.
- 복사를 클릭해 출력을 복사하거나, .py 다운로드로 파일로 저장합니다.
타입 매핑
null→Optional[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로 변환한 이름의 독립 클래스로 추출됩니다. 자식 클래스는 항상 부모 클래스보다 먼저 정의되어 출력을 바로 사용할 수 있습니다.
데이터가 서버로 전송되나요?
아니요. 모든 변환은 브라우저에서 실행됩니다. 데이터는 사용자의 기기를 벗어나지 않습니다.