Paste the JSON, get a Dart model that decodes it
Paste a payload your Flutter or Dart app receives. Your browser reads it the way
jsonDecode does, writes a null-safe model with fromJson and
toJson, and runs the model you already have against every sample to show where
it throws. Free, before you sign in. Then the desk reviews your model with
the fixed lines, or writes the model, its test and its fetch function, and
the page runs what it wrote against your samples again.
The payloads are invented. Each example comes with a saved model reply, so you can see the whole page without signing in or spending a credit.
What this does, and what it does not
The free half is computed, not guessed. The page parses your JSON itself rather than with
the browser's JSON.parse, because JSON.parse forgets what Dart remembers: in Dart,
12 decodes as an int and 12.0 as a double, and on Android or iOS
as int throws on the second while as double throws on the first. A
key that is missing from even one sample makes its field nullable, and it is read outside
the map pattern, because a map pattern fails on an absent key whatever its type. Every
rule the checker applies was observed on the Dart 3.13.4 VM and on the same code compiled
to JavaScript with dart2js, and the generated models were compiled and run against their
own samples.
The checker is not a Dart compiler. It follows json['key'] reads, casts,
map patterns, DateTime.parse, nested fromJson calls and list
conversions; anything else it says it did not check rather than guessing, and it never sees
your server, only the samples you paste. Derived from the agent skill
@flutter/flutter-implement-json-serialization
(flutter/skills, BSD-3-Clause; see the notice). Sources are in
llms.txt.