Skip to content

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.

Tanpa Pelacakan Berjalan di Browser Gratis
Output
0 karakter
Output Python
0 baris
Output diverifikasi terhadap sintaks Python 3.12+ dan semantik Pydantic v2 untuk payload API dunia nyata. — Go Tools Team · Jul 3, 2026

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. 1

    Tempel JSON Anda

    Masukkan objek JSON, array, atau respons API ke kolom input. Konversi dimulai seketika.

  2. 2

    Pilih dataclass, Pydantic, atau TypedDict

    Alihkan gaya output agar sesuai dengan proyek Anda, dan ganti nama class root dari Root bawaan.

  3. 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?
Tempel JSON Anda ke kolom input. Konverter mem-parsingnya seketika di browser Anda dan menghasilkan Python di sebelah kanan. Pilih dataclass, Pydantic v2, atau TypedDict dengan tombol pengalih, lalu klik Salin — tanpa unggah, tanpa akun, tanpa menunggu.
Apa perbedaan antara output dataclass, Pydantic, dan TypedDict?
dataclass memberi Anda @dataclass dari pustaka standar tanpa dependensi — cocok untuk penampung data sederhana. Pydantic v2 mengeluarkan class BaseModel yang memvalidasi dan mengoersi data saat runtime, ideal untuk mem-parsing respons API yang tak tepercaya. TypedDict mendeskripsikan bentuk dict biasa untuk pemeriksa tipe statis (mypy, Pyright) tanpa biaya runtime. Ganti mode untuk membandingkan JSON yang sama di masing-masing.
Bagaimana cara menghasilkan model Pydantic dari JSON?
Pilih tab Pydantic v2. Field dikonversi menjadi snake_case dengan Field(alias="originalKey") sehingga model tetap membaca JSON camelCase, dan model_config = ConfigDict(populate_by_name=True) memungkinkan Anda juga menyusunnya berdasarkan nama field. Parse payload dengan Root.model_validate(data) — Pydantic memvalidasi tipe dan memunculkan galat yang jelas pada input yang salah.
Bagaimana output dataclass menangani kunci camelCase?
dataclass tidak punya alias bawaan, jadi agar Root(**data) tetap berfungsi, mode dataclass mempertahankan kunci asli sebagai nama field selama ia merupakan identifier Python yang valid (publicRepos tetap publicRepos). Jika Anda menginginkan snake_case idiomatik dengan alias, gunakan mode Pydantic v2, yang memetakan field snake_case kembali ke kunci JSON persis.
Bagaimana field opsional dan null diberi tipe?
Ketika sebuah kunci muncul di sebagian item array tetapi tidak di item lain, tipenya dibungkus dengan Optional. Field yang selalu hanya null menjadi Optional[Any], karena null JSON saja tidak membawa tipe apa pun. Tempel sampel representatif dengan nilai yang terisi untuk mendapatkan tipe yang lebih spesifik daripada Any.
Setiap nilai JSON dipetakan ke tipe Python apa?
String dipetakan ke str, boolean ke bool, bilangan bulat ke int, dan angka apa pun dengan titik desimal atau eksponen ke float. Karena integer Python berpresisi arbitrer, bahkan ID yang sangat besar tetap int — tanpa overflow 64-bit. Array kosong atau bertipe campuran menjadi List[Any], dan objek menjadi class bertingkat.
Apakah alat ini menangani objek bertingkat dan array objek?
Ya. Setiap objek bertingkat menjadi class bernama tersendiri, dan bentuk yang identik dideduplikasi menjadi satu class yang dipakai ulang oleh setiap field. Array objek digabung kunci demi kunci sehingga Anda mendapat satu class elemen, dengan kunci yang hilang dari sebagian item ditandai Optional. Class anak selalu dikeluarkan sebelum class yang memakainya.
Bagaimana kata kunci Python dan kunci non-identifier ditangani?
Kunci JSON yang merupakan kata kunci Python (class, from, import) diberi garis bawah di akhir (class_). Kunci dengan tanda hubung, spasi, atau angka di awal disterilkan menjadi identifier yang valid dalam mode dataclass dan Pydantic. Dalam mode TypedDict, dict apa pun yang mengandung kunci non-identifier dikeluarkan dengan sintaks fungsional TypedDict('Name', {...}) sehingga kunci persis seperti "first-name" dipertahankan.
Bagaimana cara memakai dataclass yang dihasilkan untuk mem-parsing JSON?
Untuk objek datar, json.loads lalu Root(**data) langsung berfungsi. Untuk struktur bertingkat, dataclass tidak berekursi secara otomatis — bangun sendiri objek anaknya, gunakan pustaka seperti dacite atau pydantic.dataclasses, atau alihkan alat ini ke mode Pydantic v2, tempat Root.model_validate(json.loads(text)) mem-parsing seluruh pohon dalam satu panggilan.
Apakah data JSON saya privat dan aman?
Ya. Konversi berjalan 100% di browser Anda dengan JavaScript. JSON Anda — termasuk token, ID, atau data pelanggan — tidak pernah meninggalkan halaman dan tidak pernah dikirim ke server.
Apakah alat ini gratis? Apakah saya perlu akun?
Sepenuhnya gratis tanpa pendaftaran, tanpa batas, dan tanpa iklan yang memenuhi ruang kerja. Alat ini bekerja offline setelah halaman termuat.