Acabo de hacer la siguiente prueba empírica usando la consola de Chrome (v.23 en Mac):
> var j = JSON.parse("[999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999]")
undefined
> j[0]
1e+228
Si JSON se pasa a través de HTTP, el número se convertirá en String desde Java en cualquier caso y entonces el problema podría estar solo en Javascript.
De la Especificación del lenguaje ECMAScript 4.3.19 :
4.3.19 Valor numérico
valor primitivo correspondiente a un valor IEEE 754 de formato binario de 64 bits de doble precisión
NOTA Un valor de Número es un miembro del tipo Número y es una representación directa de un número.
Que es lo que se define en wikipedia en formato de punto flotante de precisión doble .