Every time I go to use JSON it is great until I remember it cannot represent 64 bit integers.
> JSON is agnostic about the semantics of numbers. In any programming language, there can be a variety of number types of various capacities and complements, fixed or floating, binary or decimal. That can make interchange between different programming languages difficult. JSON instead offers only the representation of numbers that humans use: a sequence of digits. All programming languages know how to make sense of digit sequences even if they disagree on internal representations. That is enough to allow interchange.
It also explicitly excludes NaN encoding, which further distances itself from any coupling to IEEE floating point expectations.
I think that one day browser will support it natively.