JSON and Dart-for-web do not distinguish between integers and doubles, but the Dart VM does. The JsonDecoder and JsonCodec API docs should explain how this is bridged (e.g. do all numbers become doubles?).
In short: All JSON numbers are parsed as by num.parse. That goes for both Dart-for-web and VM, but on the web all integers are also doubles, so it's not as visible.
JSON and Dart-for-web do not distinguish between integers and doubles, but the Dart VM does. The JsonDecoder and JsonCodec API docs should explain how this is bridged (e.g. do all numbers become
double
s?).