JSON naar Python-klasse-omzetter
Plak JSON en krijg direct Python-klassen — dataclass, Pydantic v2 of TypedDict. Correcte Optional-typen, camelCase-aliassen, geneste klassen. 100% in je browser, gratis.
Wat is JSON naar Python-conversie?
JSON naar Python-conversie zet een JSON-voorbeeld om in kant-en-klare Python-klassen — een dataclass uit de standaardbibliotheek, een Pydantic v2-model of een TypedDict — zodat je nooit met de hand velddefinities schrijft voor een API-respons of configuratiebestand. Deze Python-klasse-generator leidt correcte typen af (int, float, str, bool, Optional), zet geneste objecten om in benoemde klassen en voegt Pydantic-aliassen toe voor camelCase-sleutels, allemaal 100% in je browser.
Voorbeelden
API-respons → 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]
Een typische REST-payload wordt een kant-en-klare @dataclass. Gehele getallen worden int, decimalen worden float, en arrays worden List[str].
Genest object (onderliggende klasse eerst)
{"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
Geneste objecten worden afzonderlijke, benoemde klassen. De onderliggende klasse (Owner) wordt vóór de bovenliggende uitgevoerd, zodat de code werkt zonder from __future__ import annotations.
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")
In de Pydantic-modus zijn velden snake_case met Field(alias=...) die terugverwijst naar de originele JSON-sleutel, en met populate_by_name kun je het model op beide manieren opbouwen — zodat validatie echte API-data heen en weer laat gaan.
Array van objecten → TypedDict (optionele sleutel)
{"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]
Arrays van objecten worden samengevoegd tot één elementtype. Een sleutel die in sommige items ontbreekt (nick) wordt Optional. TypedDict beschrijft de vorm van een gewone dict zonder enige runtime-overhead.
Zo zet je JSON om naar Python
- 1
Plak je JSON
Zet een JSON-object, array of API-respons in het invoerveld. De conversie start direct.
- 2
Kies dataclass, Pydantic of TypedDict
Schakel de uitvoerstijl om die bij je project past, en hernoem de root-klasse vanaf de standaard Root.
- 3
Kopieer of download
Haal de gegenereerde Python met één klik op en plak het rechtstreeks in je code.
Common Use Cases
- Getypeerde API-clients
- Zet een voorbeeldrespons van REST of GraphQL om in Pydantic-modellen of dataclasses voor een requests- of httpx-client, zonder velddefinities met de hand te schrijven.
- Config- en fixture-parsing
- Genereer modellen voor JSON-configuratiebestanden, testfixtures of webhook-payloads die je moet laden en valideren.
- Snel prototypen en type-hints
- Plak een onbekende payload om de vorm ervan direct als Python-typen te zien — een snelle manier om een nieuwe API te verkennen of TypedDict-hints toe te voegen aan bestaande dict-code.
Hoe de conversie werkt
- Structurele afleiding
- Elk object wordt een benoemde klasse; identieke vormen worden ontdubbeld, zodat je één klasse krijgt en geen kopieën. Arrays van objecten worden sleutel voor sleutel samengevoegd, en sleutels die in sommige items ontbreken, worden Optional.
- Drie idiomatische doelen
- dataclass houdt nul dependencies aan en behoudt geldige sleutels voor Root(**data); Pydantic v2 voegt Field-aliassen plus populate_by_name toe voor echte validatie; TypedDict beschrijft een gewone dict voor statische typecheckers, met functionele syntaxis wanneer een sleutel geen identifier is.
- Correcte, dependency-arme typering
- Gehele getallen worden int (willekeurige precisie, geen overflow), decimalen en exponenten worden float, en velden die alleen null zijn, worden Optional[Any]. typing-imports (Optional, List, Any) worden alleen toegevoegd wanneer ze daadwerkelijk worden gebruikt.
- 100% aan de clientzijde
- Het parsen en genereren draait in je browser zonder netwerkaanroepen, zodat je data privé blijft.
Tips voor schone Python-modellen
- Stem de modus af op de taak
- Gebruik dataclass voor interne datahouders, Pydantic v2 wanneer je niet-vertrouwde invoer valideert of parset, en TypedDict wanneer je alleen statische type-hints over bestaande dicts nodig hebt.
- Plak een representatief voorbeeld
- Velden worden alleen als Optional gemarkeerd wanneer een voorbeeld ze weglaat, en waarden die alleen null zijn, vallen terug op Any. Een ingevuld, volledig voorbeeld levert de nauwkeurigste typen op.
- Geef je root-klasse een naam
- Stel een betekenisvolle rootnaam in (User, ApiResponse) in plaats van de standaard Root voor leesbare, importeerbare code.
Veelgestelde vragen
Hoe zet ik JSON om naar een Python-klasse?
Wat is het verschil tussen de uitvoer van dataclass, Pydantic en TypedDict?
Hoe genereer ik een Pydantic-model uit JSON?
Hoe gaat de dataclass-uitvoer om met camelCase-sleutels?
Hoe worden optionele en null-velden getypeerd?
Naar welk Python-type wordt elke JSON-waarde omgezet?
Kan het geneste objecten en arrays van objecten aan?
Hoe worden Python-sleutelwoorden en niet-identifier-sleutels afgehandeld?
Hoe gebruik ik de gegenereerde dataclass om JSON te parsen?
Zijn mijn JSON-gegevens privé en veilig?
Is de tool gratis? Heb ik een account nodig?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
Base64 naar afbeelding converter
Encodering en formattering
Decodeer een Base64-string of data-URI terug naar een afbeelding in je browser. Bekijk voorbeeld, lees afmetingen & MIME, download als PNG, JPG, GIF, SVG. Geen upload.
CSV naar JSON omzetter
Encodering en formattering
Zet CSV om naar JSON in uw browser. RFC 4180, type-afleiding, headerregel, big-int veilig. 100% privé, geen upload.
.env naar JSON Converter
Encodering en formattering
Plak een .env-bestand, krijg direct JSON. Je wachtwoorden, API-sleutels en tokens verlaten nooit je browser — 100% privé, gratis dotenv-parser.
Gratis HTML-entiteiten decoder — HTML unescapen
Encodering en formattering
Decodeer HTML-entiteiten en unescape HTML online — gratis, geen account, 100% in je browser. Zet genoemde, decimale & hex-referenties terug naar tekens; nooit geüpload.
Gratis HTML-entiteiten encoder — HTML escapen
Encodering en formattering
Encodeer HTML-entiteiten en escape speciale tekens (< > & " ') online — gratis, geen account, 100% in je browser. Genoemde, decimale of hex-uitvoer; nooit geüpload.