JSON'dan Python class'a

JSON yapıştır, tam type hint'leriyle Python dataclass, Pydantic model ya da TypedDict tanımları al. İsteğe bağlı alanların varsayılanı None olur, anahtarlar snake_case'e çevrilir.

Ücretsiz ve gizli. Her şey tarayıcında çalışır, hiçbir şey yüklenmez.

Nasıl kullanılır

  1. JSON'unu yapıştırAPI'nden gelen bir yanıtı yapıştır ya da .json dosyası aç. Nasıl çalıştığını görmek için Örnek'e bas.
  2. Seçenekleri ayarlaEn üstteki tipin adını ve bu dile özel seçenekleri belirle. Kod sen yazdıkça güncellenir.
  3. Kopyala ya da indirKodu projene kopyala ya da dosya olarak indir.

Üç iş için üç stil

dataclass standart kütüphanenin parçasıdır ve uygulama içi veriler için iyi bir seçimdir. Pydantic modelleri veriyi yüklerken doğrular ve dönüştürür; Python adı JSON anahtarından farklı olduğunda araç Field(alias=...) ekler, böylece model_validate asıl veriyi okur. TypedDict sadece bir sözlüğün yapısını tanımlar, json.loads çıktısıyla çalışmaya devam ediyorsan işine yarar; geçerli Python adı olmayan anahtarlar için TypedDict'in fonksiyonel yazımı kullanılır.

İsteğe bağlı alanlar her dataclass'ın sonuna taşınır, çünkü Python varsayılan değeri olan alanların diğerlerinden sonra gelmesini ister. Tipler modern list[...] yazımını kullanır, bu yüzden kod Python 3.9 ya da sonrasını ister; TypedDict'teki NotRequired için Python 3.11 ya da typing_extensions gerekir.

Sık sorulan sorular

Kod neden from __future__ import annotations ile başlıyor?

Bu satır class'ların birbirine istedikleri sırayla başvurmasını sağlar ve tip açıklamalarını yazıldığı gibi tutar. dataclass ve Pydantic 2 ile güvenle çalışır.

JSON'um bir yere yükleniyor mu?

Hayır. Tipler tarayıcında oluşturulur. Müşteri verisi ya da anahtar içeren API yanıtları cihazından çıkmaz.

İsteğe bağlı alanlar nasıl bulunuyor?

JSON'da bir nesne listesi varsa her nesne karşılaştırılır. En az bir nesnede olmayan alan isteğe bağlı olarak işaretlenir. Tek bir nesne varsa her alan zorunlu sayılır.

Hep null olan alanlara ne oluyor?

Tipi örnekten anlaşılamaz, bu yüzden alan unknown, object, Any ya da JsonElement gibi genel bir tip alır. Kesin tip için alanın dolu olduğu bir örnek ekle.

1.0 değerim neden ondalıklı sayı oldu?

Araç sayının nasıl yazıldığına bakar. 1.0 ya da 2.5 double veya float olur, 1 tam sayı olur. Bir alan bazı öğelerde tam, bazılarında ondalıklıysa ondalıklı tip kullanılır.

Sonucu canlı projede kullanabilir miyim?

Evet, kod olağan kurulumlarda olduğu gibi derlenir. Yine de commit etmeden önce adları ve tipleri gözden geçir, çünkü bir örnek hiçbir zaman olası bütün değerleri göstermez.

İnternetsiz çalışır mı?

Evet. Sayfayı bir kez açtıktan sonra internet bağlantısı olmadan da çalışmaya devam eder.