Any idea why JSON left out NaN and +/- Infinity? It puts Javascript in the strange situation where objects that would otherwise be serializable, are not, if they contain NaN or +/- infinity values.
Looks like this has been cast in stone: see RFC4627 and ECMA-262 at the top of p. 197:
Finite numbers are stringified as if by String(number). NaN and Infinity regardless of sign are represented as the string null.