以下代码:
<cfscript>
struct = StructNew();
struct.x = 1;
struct.y = 2;
</cfscript>
<cfoutput>#SerializeJSON(struct)#</cfoutput>
结果如下:
{"Y":2.0,"X":1.0}
所以我的问题是为什么.0
会被添加?并且有什么方法可以删除它吗?
答案 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 --->