Plak Python links en klik "Converteren" — wij zetten het om naar JSONPlak Python-code

Wat deze tool doet

Als je ooit een Python dict of een dataclass hebt moeten omzetten naar een JSON-payload voor een API-call, een test-fixture of een stukje documentatie, dan weet je hoe snel dat vervelend wordt — quotes moeten gedraaid, True/False wordt true/false, None wordt null, en datetime/Decimal-waarden moet je met de hand serialiseren. Plak de Python hier en krijg geldige JSON terug die exact overeenkomt met wat json.dumps of een Pydantic .model_dump_json()-call zou produceren — zonder dat je de lijm hoeft te schrijven.

Het is geen simpele string-replace. De converter snapt wat Python op serialisatie-moment echt doet: strings met enkele quotes worden dubbele quotes, tuples klappen in naar JSON-arrays, set en frozenset worden ook arrays, datetime- en date-waarden komen eruit als ISO-8601 strings volgens RFC 8259, Decimal valt naar een number, en Enum-members geven hun .value. Geneste objecten worden ter plekke uitgevouwen, dus een dataclass met een lijst van andere dataclasses doet een nette round-trip.

Pydantic-modellen (v1 én v2) worden ondersteund. Field-aliassen ingesteld via Field(alias=...) hernoemen keys in de output, Optional-velden met None blijven als null staan, en Literal/Union-types komen eruit met hun runtime-waarde. Plak gerust een hele module met meerdere classes — elke class komt er als top-level entry uit.

Hoe je het gebruikt

Drie stappen. Werkt hetzelfde of je nou een dict van twee regels plakt of een module van 300.

1

Plak je Python (of probeer het voorbeeld)

Gooi je Python zoals het is in de linker-editor. Een dict-literal, een dataclass-definitie plus instance, een Pydantic-model, of meerdere classes met geneste types — allemaal prima. Klik Load Sample als je een realistische input wilt zien.

Je hoeft imports of decorators niet weg te halen. Laat de PEP 8-formattering, type hints en eventuele dataclass-syntax gewoon staan.

2

Klik Converteren

Klik de groene Convert-knop. De tool leest de Python, bouwt de object-graph op en serialiseert alles zoals json.dumps dat zou doen — met inspringing voor leesbaarheid. Tijdens het draaien zie je even een laad-indicator.

3

Kopieer de JSON

Het rechter paneel vult zich met pretty-printed JSON, geldig volgens de JSON-spec. Kopieer het in je request body, je pytest-fixture, je FastAPI OpenAPI-voorbeeld of je config-bestand.

Wanneer dit echt van pas komt

Fixtures voor API-requests

Je hebt een Pydantic request-model en je hebt een sample JSON-body nodig voor Postman, curl of een Swagger-voorbeeld. Model erin plakken, JSON eruit, klaar.

Data voor pytest en unit-tests

Zet een dataclass-instance uit je testbestand om in een JSON-seed voor integratietests of snapshot-vergelijkingen — zonder custom encoder.

Scaffolding voor config-bestanden

Een settings-dataclass met een paar dozijn velden wordt een kant-en-klaar JSON-template, zodat je niet voor de tiende keer accolades zit te typen.

Docs en code synchroon houden

Genereer JSON-voorbeelden voor een README of API-referentie direct vanuit de modellen die je al hebt, zodat de documentatie niet uit de pas kan lopen met de code.

Veelgestelde vragen

Werkt het met Pydantic v1 en v2?

Ja. Beide worden ondersteund, inclusief Field(alias=...), model_config, Field(default_factory=...) en geneste modellen. Aliassen hernoemen keys in de output, precies zoals Pydantic zelf ook zou doen.

Hoe worden datetime, Decimal en UUID afgehandeld?

datetime, date en time komen eruit als ISO-8601 strings. Decimal valt naar een JSON-number (geen quotes). UUID wordt een standaard hex-string. bytes wordt base64-gecodeerd. Dat matcht de conventies in de Python json-module als je een custom encoder aansluit.

En Enum, Literal en Optional?

Enum-members geven hun .value. Literal["a", "b"] geeft de runtime-string. Optional[X]-velden met None komen door als JSON null in plaats van dat ze worden weggelaten — zo matcht je output-vorm met de type hints.

Kan ik een hele module met meerdere classes plakken?

Ja. Elke top-level class met een instance in de module komt er als eigen entry in de JSON uit. Geneste dataclasses en Pydantic-modellen worden ter plekke uitgevouwen, en overgeërfde velden van parent-classes worden meegenomen.

Wordt mijn code ergens opgeslagen?

De code gaat alleen naar de backend om te worden geconverteerd. We loggen of bewaren hem niet. Zoals bij elke online tool: als wat je plakt echt gevoelig is, lees het dan eerst even door.

Wat als de Python iets raars heeft — lambdas, generators, file-handles?

Niet-serialiseerbare waarden (functies, generators, open sockets) komen eruit als null in plaats van dat de hele conversie klapt. Als de bron een syntax error heeft, fix dan eerst de duidelijke — de parser is coulant met stijl-eigenaardigheden, maar kan geen kapotte code draaien.

Andere tools die je misschien nodig hebt

Python naar JSON is een deel van de puzzel. Deze tools combineren er goed mee: