为什么SerializeJSON返回带有.0的int?

时间:2011-01-18 18:00:50

标签: json coldfusion

以下代码:

<cfscript>
struct = StructNew();
struct.x = 1;
struct.y = 2;
</cfscript>

<cfoutput>#SerializeJSON(struct)#</cfoutput>

结果如下:

{"Y":2.0,"X":1.0}

所以我的问题是为什么.0会被添加?并且有什么方法可以删除它吗?

4 个答案:

答案 0 :(得分:5)

我发现删除.0的最好的东西是使用Coldfusion函数javaCast进行强制转换:

struct.x = javaCast("int",1);

答案 1 :(得分:4)

在数字中添加一个尾随的.0是在版本8中实现serializeJson的方式中的一个已知的“功能”。它在我的家用XP机器上的CF 9.01中修复/更改,代码返回

{"Y":"2","X":"1"}

答案 2 :(得分:0)

我认为实施不是最好的: - /尝试结帐:http://craigkaminsky.blogspot.com/2008/11/coldfusion-serializejson-gotcha.html

答案 3 :(得分:-1)

删除它的两种方法:

NumberFormat(x, "9")

<cfset x = 1.0> <cfset y = x * 1> <!--- will convert to an int --->