Konverter JSON ke Class Python
Tempel JSON, hasilkan class Python seketika: dataclass, Pydantic v2, atau TypedDict. Tipe Optional benar, alias camelCase, class bertingkat. 100% di browser, gratis.
Apa itu konversi JSON ke Python?
Konversi JSON ke Python mengubah sampel JSON menjadi class Python siap pakai — dataclass pustaka standar, model Pydantic v2, atau TypedDict — sehingga Anda tak pernah menulis tangan definisi field untuk respons API atau file konfigurasi. Generator class Python ini menyimpulkan tipe yang benar (int, float, str, bool, Optional), mengubah objek bertingkat menjadi class bernama, dan menambahkan alias Pydantic untuk kunci camelCase, semuanya 100% di browser Anda.
Contoh
Respons 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]
Payload REST yang khas menjadi @dataclass yang siap dipakai. Bilangan bulat disimpulkan int, desimal disimpulkan float, dan array menjadi List[str].
Objek bertingkat (class anak dulu)
{"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
Objek bertingkat menjadi class terpisah dengan nama. Class anak (Owner) dikeluarkan sebelum induknya sehingga kode berjalan tanpa from __future__ import annotations.
camelCase → alias 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")
Dalam mode Pydantic, field menjadi snake_case dengan Field(alias=...) yang memetakan kembali ke kunci JSON asli, dan populate_by_name memungkinkan Anda membangun model dengan kedua cara — sehingga validasi dapat round-trip dengan data API sungguhan.
Array objek → TypedDict (kunci opsional)
{"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]
Array objek digabung menjadi satu tipe elemen. Kunci yang hilang dari sebagian item (nick) menjadi Optional. TypedDict mendeskripsikan bentuk dict biasa tanpa overhead runtime.
Cara mengonversi JSON ke Python
- 1
Tempel JSON Anda
Masukkan objek JSON, array, atau respons API ke kolom input. Konversi dimulai seketika.
- 2
Pilih dataclass, Pydantic, atau TypedDict
Alihkan gaya output agar sesuai dengan proyek Anda, dan ganti nama class root dari Root bawaan.
- 3
Salin atau unduh
Ambil Python yang dihasilkan dengan satu klik dan tempel langsung ke kode Anda.
Common Use Cases
- Klien API bertipe
- Ubah sampel respons REST atau GraphQL menjadi model Pydantic atau dataclass untuk klien requests atau httpx tanpa menulis definisi field dengan tangan.
- Parsing konfigurasi dan fixture
- Hasilkan model untuk file konfigurasi JSON, fixture uji, atau payload webhook yang perlu Anda muat dan validasi.
- Prototipe cepat dan petunjuk tipe
- Tempel payload yang tak dikenal untuk langsung melihat bentuknya sebagai tipe Python — cara cepat menjelajahi API baru atau menambahkan petunjuk TypedDict ke kode dict lama.
Cara kerja konversi
- Inferensi struktural
- Setiap objek menjadi class bernama; bentuk yang identik dideduplikasi sehingga Anda mendapat satu class, bukan salinan. Array objek digabung kunci demi kunci, dan kunci yang absen dari sebagian item menjadi Optional.
- Tiga target idiomatik
- dataclass menjaga nol dependensi dan mempertahankan kunci yang valid untuk Root(**data); Pydantic v2 menambahkan alias Field plus populate_by_name untuk validasi sungguhan; TypedDict mendeskripsikan dict biasa untuk pemeriksa tipe statis, memakai sintaks fungsional saat sebuah kunci bukan identifier.
- Penentuan tipe yang benar dan minim dependensi
- Bilangan bulat dipetakan ke int (presisi arbitrer, tanpa overflow), desimal dan eksponen ke float, dan field yang hanya null ke Optional[Any]. Impor typing (Optional, List, Any) ditambahkan hanya saat benar-benar dipakai.
- 100% sisi klien
- Parsing dan pembuatan berjalan di browser Anda tanpa panggilan jaringan, sehingga data Anda tetap privat.
Tips untuk model Python yang rapi
- Cocokkan mode dengan tugasnya
- Gunakan dataclass untuk penampung data internal, Pydantic v2 saat Anda memvalidasi atau mem-parsing input yang tak tepercaya, dan TypedDict saat Anda hanya perlu petunjuk tipe statis di atas dict yang sudah ada.
- Tempel sampel yang representatif
- Field ditandai Optional hanya ketika sebuah sampel menghilangkannya, dan nilai yang hanya null jatuh kembali ke Any. Contoh yang lengkap dan terisi menghasilkan tipe yang paling presisi.
- Beri nama class root Anda
- Tetapkan nama root yang bermakna (User, ApiResponse) alih-alih Root bawaan agar kode mudah dibaca dan dapat diimpor.
Pertanyaan yang sering diajukan
Bagaimana cara mengonversi JSON menjadi class Python?
Apa perbedaan antara output dataclass, Pydantic, dan TypedDict?
Bagaimana cara menghasilkan model Pydantic dari JSON?
Bagaimana output dataclass menangani kunci camelCase?
Bagaimana field opsional dan null diberi tipe?
Setiap nilai JSON dipetakan ke tipe Python apa?
Apakah alat ini menangani objek bertingkat dan array objek?
Bagaimana kata kunci Python dan kunci non-identifier ditangani?
Bagaimana cara memakai dataclass yang dihasilkan untuk mem-parsing JSON?
Apakah data JSON saya privat dan aman?
Apakah alat ini gratis? Apakah saya perlu akun?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Encoder Entitas HTML Gratis — Escape HTML
Encoding & Pemformatan
Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.