Inference rulesNested objects split into separate types; arrays are typed automatically; optional/nullable fields detected; mixed types form unions; null / empty arrays fall back to sane types; identical shapes are deduped and name clashes disambiguated.Runs locally — no fixed size limit (bounded by browser memory)
Sample JSONJSON
Paste or type JSON
GeneratedDart
Paste or type JSON
JSON → Dart class · Local · No upload

JSON to Dart Model Class Generator

Sample JSON → class · fromJson / toJson · Nullable fields · required constructor

🔒Processed locally in your browser — never uploaded or stored

No upload, no storage

JSON is processed in memory and never sent to a server.

Share via URL fragment

Share links encode data in the # anchor — never sent to a server.

Remember last edit

Optionally keep your last input locally; clear it with one click.

Generate Dart Model Classes|fromJson & toJson Both Ways|No build_runner Required|Null-Safe & Nested|Runs Locally

fromJson and toJson Together

Both directions are generated, so you never hand-write the parsing boilerplate.

No Code Generation Step

Output is plain hand-written-style Dart — no build_runner, no json_serializable in your pubspec.

Null Safety Handled

Required fields are marked required in the constructor; nullable ones get a question mark. It passes null safety as-is.

Nested and Arrays Unwrapped

Nested objects recurse into fromJson and object arrays map out automatically, however deep they go.

Runs Locally — No Upload

Generation runs in your browser; data is never uploaded.