Есть идеи, почему JSON не учел NaN и +/- Infinity? Это ставит Javascript в странную ситуацию, когда объекты, которые в противном случае были бы сериализуемыми, не являются сериализуемыми, если они содержат значения NaN или +/- бесконечности.
Похоже, это высечено на камне: см. RFC4627 и ECMA-262 (раздел 24.5.2, JSON.stringify, ПРИМЕЧАНИЕ 4, стр. 683). ECMA-262 pdf при последнем редактировании):
Конечные числа преобразуются в строки, как если бы они вызывали
ToString(number)
. NaN и Infinity независимо от знака представлены строкойnull
.