Skip to content

JSON'dan Python Sınıf Dönüştürücü

JSON yapıştırın, anında Python sınıfları alın — dataclass, Pydantic v2 veya TypedDict. Doğru Optional türleme, camelCase alias'ları. %100 tarayıcınızda, ücretsiz.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Çıktı
0 karakter
Python Çıktı
0 satır
Çıktı, gerçek dünya API yükleri için Python 3.12+ sözdizimi ve Pydantic v2 semantiğine göre doğrulandı. — Go Tools Team · Jul 3, 2026

JSON'dan Python'a dönüştürme nedir?

JSON'dan Python'a dönüştürme, bir JSON örneğini kullanıma hazır Python sınıflarına — standart kütüphane dataclass'ı, Pydantic v2 modeli veya TypedDict — çevirir; böylece bir API yanıtı ya da yapılandırma dosyası için alan tanımlarını elle yazmazsınız. Bu Python sınıf oluşturucu, doğru türleri (int, float, str, bool, Optional) çıkarsar, iç içe nesneleri adlandırılmış sınıflara dönüştürür ve camelCase anahtarlar için Pydantic alias'ları ekler — hepsi %100 tarayıcınızda.

Örnekler

API yanıtı → 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]

Tipik bir REST yükü, kullanıma hazır bir @dataclass olur. Tam sayılar int, ondalıklar float olarak çıkarsanır ve diziler List[str] olur.

İç içe nesne (önce alt sınıf)

{"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

İç içe nesneler ayrı, adlandırılmış sınıflara dönüşür. Alt sınıf (Owner), üst sınıftan önce yazılır; böylece kod, from __future__ import annotations olmadan çalışır.

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 modunda alanlar snake_case olur ve Field(alias=...) bunları orijinal JSON anahtarına geri eşler; populate_by_name ise modeli iki şekilde de oluşturmanıza olanak tanır — böylece doğrulama sırasında gerçek API verileri kayıpsız gidip gelir.

Nesne dizisi → TypedDict (isteğe bağlı anahtar)

{"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]

Nesne dizileri tek bir öğe türünde birleşir. Bazı öğelerde eksik olan bir anahtar (nick) Optional olur. TypedDict, düz bir dict'in biçimini sıfır çalışma zamanı maliyetiyle tanımlar.

JSON nasıl Python'a dönüştürülür

  1. 1

    JSON'unuzu yapıştırın

    Giriş alanına bir JSON nesnesi, dizisi veya API yanıtı bırakın. Dönüştürme anında başlar.

  2. 2

    dataclass, Pydantic veya TypedDict seçin

    Çıktı stilini projenize uyacak şekilde değiştirin ve kök sınıfı varsayılan Root'tan yeniden adlandırın.

  3. 3

    Kopyalayın veya indirin

    Oluşturulan Python'ı tek tıkla alın ve doğrudan kodunuza yapıştırın.

Common Use Cases

Türlenmiş API istemcileri
Bir REST veya GraphQL yanıtı örneğini, alan tanımlarını elle yazmadan bir requests ya da httpx istemcisi için Pydantic modellerine veya dataclass'lara dönüştürün.
Yapılandırma ve fikstür ayrıştırma
Yüklemeniz ve doğrulamanız gereken JSON yapılandırma dosyaları, test fikstürleri veya webhook yükleri için modeller oluşturun.
Hızlı prototipleme ve tür ipuçları
Bilmediğiniz bir yükü yapıştırıp biçimini anında Python türleri olarak görün — yeni bir API'yi keşfetmenin veya eski dict koduna TypedDict ipuçları eklemenin hızlı bir yolu.

Dönüştürme nasıl çalışır

Yapısal çıkarım
Her nesne adlandırılmış bir sınıf olur; aynı biçimler tekilleştirilir, böylece kopyalar değil tek bir sınıf elde edersiniz. Nesne dizileri anahtar anahtar birleştirilir ve bazı öğelerde bulunmayan anahtarlar Optional olur.
Üç idiomatik hedef
dataclass sıfır bağımlılık tutar ve Root(**data) için geçerli anahtarları korur; Pydantic v2, gerçek doğrulama için Field alias'larını ve populate_by_name'i ekler; TypedDict, statik tür denetleyicileri için düz bir dict'i tanımlar ve bir anahtar tanımlayıcı olmadığında işlevsel sözdizimi kullanır.
Doğru, bağımlılığı az türleme
Tam sayılar int'e (rastgele kesinlik, taşma yok), ondalıklar ve üsler float'a ve yalnızca null olan alanlar Optional[Any]'ye eşlenir. typing içe aktarımları (Optional, List, Any) yalnızca gerçekten kullanıldığında eklenir.
%100 istemci tarafı
Ayrıştırma ve oluşturma, ağ çağrısı olmadan tarayıcınızda çalışır; böylece verileriniz gizli kalır.

Temiz Python modelleri için ipuçları

Modu işe göre eşleştirin
Dahili veri taşıyıcıları için dataclass'ı, güvenilmeyen girdiyi doğruladığınızda veya ayrıştırdığınızda Pydantic v2'yi ve yalnızca mevcut dict'ler üzerinde statik tür ipuçlarına ihtiyaç duyduğunuzda TypedDict'i kullanın.
Temsili bir örnek yapıştırın
Alanlar yalnızca bir örnek onları atladığında Optional olarak işaretlenir ve yalnızca null olan değerler Any'ye geri düşer. Dolu, eksiksiz bir örnek en kesin türleri verir.
Kök sınıfınızı adlandırın
Okunabilir ve içe aktarılabilir kod için varsayılan Root yerine anlamlı bir kök adı (User, ApiResponse) belirleyin.

Sıkça Sorulan Sorular

JSON'u bir Python sınıfına nasıl dönüştürürüm?
JSON'unuzu giriş alanına yapıştırın. Dönüştürücü onu tarayıcınızda anında ayrıştırır ve sağda Python oluşturur. Anahtarla dataclass, Pydantic v2 veya TypedDict seçin, ardından Kopyala'ya tıklayın — yükleme yok, hesap yok, bekleme yok.
dataclass, Pydantic ve TypedDict çıktısı arasındaki fark nedir?
dataclass, bağımlılığı olmayan standart kütüphane @dataclass'ını verir — düz veri taşıyıcıları için idealdir. Pydantic v2, verileri çalışma zamanında doğrulayan ve dönüştüren BaseModel sınıfları üretir; güvenilmeyen API yanıtlarını ayrıştırmak için mükemmeldir. TypedDict, statik tür denetleyicileri (mypy, Pyright) için düz bir dict'in biçimini sıfır çalışma zamanı maliyetiyle tanımlar. Aynı JSON'u her birinde karşılaştırmak için modları değiştirin.
JSON'dan bir Pydantic modeli nasıl oluştururum?
Pydantic v2 sekmesini seçin. Alanlar Field(alias="originalKey") ile snake_case'e dönüştürülür; böylece model yine de camelCase JSON'u okur ve model_config = ConfigDict(populate_by_name=True), onu alan adıyla da oluşturmanıza olanak tanır. Bir yükü Root.model_validate(data) ile ayrıştırın — Pydantic türleri doğrular ve hatalı girişte açık bir hata verir.
dataclass çıktısı camelCase anahtarları nasıl işler?
Bir dataclass'ın yerleşik alias'ı yoktur; bu yüzden Root(**data) çalışmaya devam etsin diye, dataclass modu, geçerli bir Python tanımlayıcısı olduğunda orijinal anahtarı alan adı olarak korur (publicRepos, publicRepos kalır). Alias'larla idiomatik snake_case istiyorsanız, snake_case alanları tam JSON anahtarına geri eşleyen Pydantic v2 modunu kullanın.
İsteğe bağlı ve null alanlar nasıl türlenir?
Bir anahtar bazı dizi öğelerinde bulunup diğerlerinde bulunmadığında, türü Optional içine sarılır. Yalnızca ve her zaman null olan bir alan Optional[Any] olur, çünkü tek başına JSON null hiçbir tür taşımaz. Any yerine daha belirgin bir tür almak için, dolu bir değer içeren temsili bir örnek yapıştırın.
Her JSON değeri hangi Python türüne eşlenir?
Dizeler str'ye, boole değerleri bool'a, tam sayılar int'e ve ondalık nokta ya da üs içeren herhangi bir sayı float'a eşlenir. Python tam sayıları rastgele kesinlikte olduğundan, çok büyük kimlikler bile int kalır — 64 bit taşması yoktur. Boş veya karışık türde diziler List[Any] olur ve nesneler iç içe sınıflara dönüşür.
İç içe nesneleri ve nesne dizilerini işler mi?
Evet. Her iç içe nesne kendi adlandırılmış sınıfı olur ve aynı biçimler, her alanın yeniden kullandığı tek bir sınıfa tekilleştirilir. Nesne dizileri anahtar anahtar birleştirilir; böylece tek bir öğe sınıfı elde edersiniz ve bazı öğelerde bulunmayan anahtarlar Optional olarak işaretlenir. Alt sınıflar her zaman, onları kullanan sınıflardan önce yazılır.
Python anahtar sözcükleri ve tanımlayıcı olmayan anahtarlar nasıl işlenir?
Python anahtar sözcüğü olan bir JSON anahtarı (class, from, import), sonuna alt çizgi alır (class_). Tire, boşluk veya başında rakam olan anahtarlar, dataclass ve Pydantic modlarında geçerli tanımlayıcılara temizlenir. TypedDict modunda, tanımlayıcı olmayan bir anahtar içeren herhangi bir dict, işlevsel TypedDict('Name', {...}) sözdizimiyle yayılır; böylece "first-name" gibi tam anahtar korunur.
Oluşturulan dataclass'ı JSON ayrıştırmak için nasıl kullanırım?
Düz bir nesne için json.loads ve ardından Root(**data) doğrudan çalışır. İç içe yapılar için dataclass otomatik olarak özyinelenmez — ya alt nesneleri kendiniz oluşturun, dacite veya pydantic.dataclasses gibi bir kütüphane kullanın ya da bu aracı, Root.model_validate(json.loads(text))'in tüm ağacı tek çağrıda ayrıştırdığı Pydantic v2 moduna geçirin.
JSON verilerim gizli ve güvende mi?
Evet. Dönüştürme %100 tarayıcınızda JavaScript kullanılarak gerçekleşir. JSON'unuz — token, kimlik veya müşteri verileri dahil — sayfadan asla ayrılmaz ve hiçbir sunucuya gönderilmez.
Araç ücretsiz mi? Hesap gerekiyor mu?
Tamamen ücretsizdir; kayıt yok, sınır yok ve çalışma alanını karmaşıklaştıran reklam yok. Sayfa bir kez yüklendikten sonra çevrimdışı çalışır.