Ich habe gerade den folgenden empirischen Test mit der Chrome-Konsole (v.23 auf Mac) durchgeführt:
> var j = JSON.parse("[999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999]")
undefined
> j[0]
1e+228
Wenn JSON über HTTP übergeben wird, wird die Nummer in jedem Fall von Java in String konvertiert, und das Problem kann nur in Javascript auftreten.
Aus der ECMAScript-Sprachspezifikation 4.3.19 :
4.3.19 Zahlenwert
primitiver Wert, der einem IEEE 754-Wert im 64-Bit-Binärformat mit doppelter Genauigkeit entspricht
HINWEIS Ein Zahlenwert ist ein Mitglied des Zahlentyps und eine direkte Darstellung einer Zahl.
Welches ist, was in Wikipedia Gleitkomma-Format mit doppelter Genauigkeit definiert .