Even though JSON is a "natural" for scalar types, it can get weird, there. For example, let's say we have a float:
{ "kids": 1.0 }
It needs to be parsed as a float, because we could have: { "kids": 2.3 }
But I often see these sent as: { "kids": 1 }
or { "kids": "1.0" }
or even { "kids": "1" }
And I have differing results, based on the parser.