JSON to Python model generator

Target
01

Source

VALID JSON
Local processing. Your JSON stays in this browser.
370 B
02

Model

4 MODELS
6 fields
SourceTarget
TypeEvidence
id
email_address
email
created_at
datetime
profile
tags
projects
4 fields
SourceTarget
TypeEvidence
display_name
active
phone
address
2 fields
SourceTarget
TypeEvidence
city
country
2 fields
SourceTarget
TypeEvidence
name
active
4 diagnosticsThe property name was normalized for the target. "email_address" → "emailAddress"
  • infoThe property name was normalized for the target. "email_address" → "emailAddress"PROPERTY_NAME_NORMALIZED
  • infoThe property name was normalized for the target. "created_at" → "createdAt"PROPERTY_NAME_NORMALIZED
  • infoThe property name was normalized for the target. "display_name" → "displayName"PROPERTY_NAME_NORMALIZED
  • warningOnly null was observed, so a concrete type cannot be inferred. "phone"NULL_ONLY_UNKNOWN_TYPE
03

Output

Awaiting generationInspect the model, choose a target, then commit the route.
JSONIRCODE
Hover a field to inspect its route

Python models without collapsed evidence

Required, missing, and null observations remain independent before mapping to Python annotations and defaults. Source aliases are retained as dataclass metadata or Pydantic Field aliases.

Common questions

Does optional always mean nullable?

The IR keeps those facts separate. Python defaults use None when a constructor field may be omitted, while required nullable fields remain required.

Does Pydantic coercion happen silently?

No generator inference depends on Pydantic coercion. Strict mode is an explicit generator option in the package contract.