Coldfusion SerializeJSON and deSerializeJSON is converting a string to number

A ColdFusion está a converter uma cadeia para número quando passa para a JS através de um SerializeJSON e deSerializeJSON.

Isto só acontece quando um' E ' é usado entre dois conjuntos de números. como 3E6, 65E3, 56e45 etc. Este é o código dentro do CFC.

x = "2e9";
writedump(SerializeJSON(x));
writedump(deSerializeJSON(SerializeJSON(x)));

Output:
2.0E9 2000000000 

por favor, sugira, se houver outra maneira para tais questões.

Author: Arun Pati, 2014-11-19

1 answers

É isto: https://bugbase.adobe.com/index.cfm?event=bug&id=3695627 " SerializeJSON transforma cordas que parecem notação científica em flutuantes."

É um insecto conhecido no CF9, e é corrigido no CF10. Nesse meio tempo, você terá que encher a corda com algo para forçar a Coldfusão a não vê-la como um número na notação científica.

Ou actualizar para CF10 (CF9 é fim de vida no próximo mês, btw). Ou para Railo.

 8
Author: Adam Cameron, 2014-11-19 11:12:16