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.
Gebouwd en gecontroleerd door ontwikkelaars die met Python, Pydantic en getypeerde API's werken.
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 →ASCII-tabel en ASCII-converter
Encodering en formattering
De volledige ASCII-tabel: 128 tekens in decimaal, hex, octaal en binair, plus een converter die beide kanten op werkt. Stuurtekens met escape-sequenties, caret-notatie en de plek waar je ze echt tegenkomt.
Gratis barcodegenerator — EAN-13, UPC-A & Code 128
Encodering en formattering
Genereer EAN-13, UPC-A, Code 128, Code 39 en 11 andere soorten barcodes als SVG of afdrukklare PNG. Typ 12 cijfers; het controlecijfer wordt aangevuld. Is er één fout, dan noemen we het cijfer dat het moet zijn.
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.
Base64 naar PDF & bestand omzetten · PDF naar Base64
Encodering en formattering
Base64 naar PDF online: plak kale Base64, een data-URI of het hele JSON-antwoord. Herkent het echte bestandstype, toont een voorbeeld, downloadt het en waarschuwt bij afgekapte PDF's. Ook PDF naar Base64. Er wordt niets geüpload.
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.