Konwerter JSON na Python — Generator klas
Konwertuj JSON na dataclasses Pythona lub modele Pydantic z podpowiedziami typów, polami snake_case i from_dict/to_dict. Za darmo, prywatnie, w przeglądarce.
🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłaneOd JSON do typowanych klas Pythona
Praca na surowych słownikach jest szybka, dopóki literówka w nazwie klucza nie wywoła KeyError trzy warstwy głębiej. Ten konwerter JSON na Python generuje typowane klasy z przykładu JSON, dzięki czemu Twój edytor, mechanizm sprawdzania typów i koledzy z zespołu dokładnie wiedzą, co zawiera każdy ładunek danych. Każdy obiekt staje się klasą z opisanymi atrybutami, zagnieżdżone obiekty stają się własnymi klasami, listy są typowane według typu elementu, a wartości, które czasem nie występują, są typowane jako opcjonalne. Klucze JSON są zamieniane na nazwy atrybutów w snake_case, podczas gdy wygenerowany kod serializacji zachowuje oryginalne klucze w przesyłanych danych.
Generowanie obsługuje quicktype, który łączy wszystkie elementy każdej tablicy, zanim wywnioskuje typy. Pole występujące tylko w części elementów jest więc nadal uwzględniane i oznaczane jako opcjonalne, zamiast po cichu znikać.
Dataclasses, Pydantic i wersje Pythona
Domyślnie wynik używa klas @dataclass z biblioteki standardowej oraz funkcji from_dict i to_dict, które walidują i konwertują każde pole, więc nie potrzebujesz żadnej zewnętrznej zależności. Jeśli Twój projekt już korzysta z Pydantic — dla treści żądań FastAPI, ustawień lub walidacji — zaznacz Pydantic BaseModel, a klasy będą dziedziczyć po BaseModel. Selektor wersji Pythona określa składnię typów: 3.10+ daje nowoczesne adnotacje list[int] i str | None, a starsze wersje wracają do modułu typing. Zaznacz Classes only, aby całkowicie pominąć funkcje pomocnicze konwersji.
Praktyczne wskazówki
Użyj przykładu, który zawiera pola opcjonalne i kilka elementów tablicy, ponieważ wnioskowanie potrafi opisać tylko to, co widzi. Nazwij klasę główną zgodnie z Twoją domeną — Invoice czyta się lepiej niż Root — a pobrany plik użyje tej nazwy. Po wygenerowaniu uruchom formater i narzędzie do sprawdzania typów (Black, Ruff, mypy lub Pyright) i doprecyzuj to, czego przykład nie mógł pokazać, np. ciągi znaków będące w rzeczywistości enumami albo liczby, które powinny być typu Decimal. Całe parsowanie i generowanie kodu odbywa się lokalnie, więc możesz bezpiecznie wklejać odpowiedzi zawierające dane klientów.
Jak używać
- Wklej JSONWklej obiekt lub tablicę JSON albo kliknij Load sample.
- Wybierz stylWybierz wersję Pythona oraz to, czy chcesz dataclasses, czy modele Pydantic.
- Skopiuj klasySkopiuj wygenerowany kod lub pobierz go jako moduł .py.
Najczęściej zadawane pytania
Czy generuje dataclasses, czy modele Pydantic?
@dataclass z podpowiedziami typów; zaznacz Pydantic BaseModel, aby zamiast tego otrzymać modele Pydantic.Jakie wersje Pythona są obsługiwane?
list[str], oraz składni unii X | None.Czy nazwy właściwości są zamieniane na snake_case?
from_dict i to_dict zachowują oryginalne klucze JSON.