我有一个查询,我想将其转换为JSON对象。
在我的查询中,有一个字符串(例如"0000"
或"0001"
)。不幸的是,在调用SerializeJSON
后,字符串是一个数字(0
,1
,...)。
使用jQuery调用函数时出错,因为JSON对象无效。引号失败:
{
"COLUMNS": ["Test1","Test2","Test3"],
"DATA": [ ["AA ",0000,"testestest"] ]
}
我已经尝试了很多东西。你能救我吗?
这是我的代码:
<cffunction name="getData" access="remote" returntype="any" returnformat="JSON">
SQL....
<cfset result = SerializeJSON(result)>
<cfreturn result>
</cffunction>
答案 0 :(得分:5)
这是一个已在Adobe ColdFusion中注册的ColdFusion 9错误(错误ID 83638)。您可以将ColdFusion升级到ColdFusion 9.0.1以解决此问题。您只需要安装热修复程序。
访问以下网址以安装Hotfix。
http://helpx.adobe.com/coldfusion/kb/cumulative-hotfix-1-chf1-coldfusion.html
此修复程序已添加到ColdFusion 10中。
答案 1 :(得分:3)
此功能可能会有所帮助:http://www.davidosomething.com/blog/fix-cf-serializejson-number-conversion
或者,使用此方法: http://www.ghidinelli.com/2008/12/19/tricking-serializejson-to-treat-numbers-as-strings
您可以修改查询,以便选择列并同时附加一些前导空格,例如
<cfquery>
SELECT ' ' + Test2 AS yourColumn
答案 2 :(得分:3)
尽管不完全相同,但是我要求将a post here序列化查询序列化为json与AngularJS一起使用可能会有所帮助