JSON to Python 클래스 변환기
온라인 JSON to Python 변환기. dataclass, Pydantic v2, TypedDict 클래스를 즉시 생성합니다. Optional 타입, camelCase alias 자동. 100% 브라우저, 무료.
JSON to Python 변환이란 무엇인가요?
JSON to Python 변환은 JSON 샘플을 바로 사용할 수 있는 Python 클래스 — 표준 라이브러리 dataclass, Pydantic v2 모델, 또는 TypedDict — 로 바꿔 줍니다. 그래서 API 응답이나 설정 파일을 위해 필드 정의를 손으로 쓸 필요가 없습니다. 이 Python 클래스 생성기는 올바른 타입(int, float, str, bool, Optional)을 추론하고, 중첩 객체를 명명된 클래스로 바꾸며, camelCase 키에 Pydantic alias를 추가합니다 — 모두 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 alias
{"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]
객체 배열은 하나의 요소 타입으로 병합됩니다. 일부 항목에 없는 키(nick)는 Optional이 됩니다. TypedDict는 런타임 오버헤드 없이 순수한 dict의 형태를 기술합니다.
JSON을 Python으로 변환하는 방법
- 1
JSON 붙여넣기
JSON 객체, 배열 또는 API 응답을 입력 상자에 넣으세요. 변환이 즉시 시작됩니다.
- 2
dataclass, Pydantic, TypedDict 선택
프로젝트에 맞게 출력 스타일을 토글하고, 루트 클래스의 이름을 기본값 Root에서 바꾸세요.
- 3
복사 또는 다운로드
생성된 Python을 한 번의 클릭으로 가져와 코드에 바로 붙여넣으세요.
Common Use Cases
- 타입이 지정된 API 클라이언트
- REST나 GraphQL 응답 샘플을 requests나 httpx 클라이언트를 위한 Pydantic 모델이나 dataclass로 바꿉니다. 필드 정의를 손으로 쓸 필요가 없습니다.
- 설정과 픽스처 파싱
- 불러와서 검증해야 하는 JSON 설정 파일, 테스트 픽스처, 웹훅 페이로드의 모델을 생성합니다.
- 빠른 프로토타이핑과 타입 힌트
- 낯선 페이로드를 붙여넣으면 그 형태가 Python 타입으로 즉시 표시됩니다 — 새로운 API를 빠르게 탐색하거나 레거시 dict 코드에 TypedDict 힌트를 추가하는 방법입니다.
변환이 작동하는 방식
- 구조적 추론
- 각 객체는 명명된 클래스가 되며, 동일한 형태는 중복 제거되어 복사본이 아닌 하나의 클래스를 얻습니다. 객체 배열은 키 단위로 병합되고, 일부 항목에 없는 키는 Optional이 됩니다.
- 관용적인 세 가지 대상
- dataclass는 의존성이 전혀 없고 Root(**data)를 위해 유효한 키를 보존합니다. Pydantic v2는 실제 검증을 위해 Field alias와 populate_by_name을 추가합니다. TypedDict는 정적 타입 검사기를 위해 순수한 dict를 기술하며, 키가 식별자가 아닐 때는 함수형 구문을 사용합니다.
- 올바르고 의존성이 가벼운 타입 지정
- 정수는 int(임의 정밀도, 오버플로 없음)로, 소수와 지수는 float으로, null만 있는 필드는 Optional[Any]로 매핑됩니다. typing import(Optional, List, Any)는 실제로 사용될 때만 추가됩니다.
- 100% 클라이언트 측
- 파싱과 생성이 네트워크 호출 없이 브라우저에서 실행되므로 데이터가 비공개로 유지됩니다.
깔끔한 Python 모델을 위한 팁
- 작업에 맞는 모드 선택
- 내부 데이터 홀더에는 dataclass를, 신뢰할 수 없는 입력을 검증하거나 파싱할 때는 Pydantic v2를, 기존 dict에 정적 타입 힌트만 필요할 때는 TypedDict를 사용하세요.
- 대표적인 샘플 붙여넣기
- 필드는 샘플이 그것을 생략할 때만 Optional로 표시되고, null만 있는 값은 Any로 폴백합니다. 값이 채워진 완전한 예시가 가장 정확한 타입을 만들어 냅니다.
- 루트 클래스 이름 짓기
- 읽기 쉽고 import 가능한 코드를 위해 기본값 Root 대신 의미 있는 루트 이름(예: User, ApiResponse)을 설정하세요.
자주 묻는 질문
JSON을 Python 클래스로 어떻게 변환하나요?
dataclass, Pydantic, TypedDict 출력은 무엇이 다른가요?
JSON에서 Pydantic 모델을 어떻게 생성하나요?
dataclass 출력은 camelCase 키를 어떻게 처리하나요?
선택적 필드와 null 필드는 어떻게 타입이 지정되나요?
각 JSON 값은 어떤 Python 타입으로 매핑되나요?
중첩 객체와 객체 배열도 처리하나요?
Python 키워드와 식별자가 아닌 키는 어떻게 처리되나요?
생성된 dataclass로 JSON을 파싱하려면 어떻게 하나요?
제 JSON 데이터는 비공개이고 안전한가요?
이 도구는 무료인가요? 계정이 필요한가요?
관련 도구
모든 도구 보기 →Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
Base64 이미지 변환기 (온라인)
인코딩 & 포매팅
Base64 문자열이나 데이터 URI를 온라인 브라우저에서 이미지로 디코딩합니다. 미리보고, 치수와 MIME을 읽은 뒤 PNG, JPG, GIF, SVG로 다운로드하세요. 업로드 없음.
CSV to JSON 변환기 (CSV to JSON Converter)
인코딩 & 포매팅
브라우저에서 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진수 출력, 업로드 없음.