本文介绍了Coldfusion JSON 序列化不一致的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我写了以下组件:
<cfcomponent>
<cffunction name="test" returntype="struct" access="remote" returnformat="json">
<cfset local.str = structNew()>
<cfset str.a = "hello">
<cfset str.b = 23>
<cfreturn local.str>
</cffunction>
</cfcomponent>
当我在我的开发环境中运行它时,我得到以下信息:
When I run this in my dev environment I get the following:
{"A":"hello","B":"23"}
在生产中,我得到了这个:
In production, I get this:
{"A":"hello","B":23}
相同的代码,相同的 CF 版本,相同的 JVM,不同的结果.有人知道为什么吗?
Same code, same CF version, same JVM, different results. Anybody know why?
推荐答案
看来这是CF9的bug.不确定您如何从本地/生产版本中获得不同的结果.有关详细讨论,请参阅此博客文章:
It appears that this is bug in CF9. Not sure how you are getting different results from your local / production version. See this blog post for a detailed discussion:
http://coldfusion.tcs.de/adobe-please-fix-coldfusion-serializejson/
看起来您有四个选项.
- 修改您的代码以使用字符串而不是数字
- 将您的 CF 服务器回滚到 9.0
- 使用 Railo 代替 Adobe CF
- 切换到其他 JSON 序列化程序.显然有两个命名的 CFJSON:http://cfjson.riaforge.org/ 和 Dan Roberts 的建议 http://www.epiphantastic.com/cfjson/
- Modify your code to expect strings instead of numbers
- Roll back your CF server to 9.0
- Use Railo instead of Adobe CF
- Switch to a different JSON serializer. Apparently there are two named CFJSON: http://cfjson.riaforge.org/ and Dan Roberts' suggestion http://www.epiphantastic.com/cfjson/
这篇关于Coldfusion JSON 序列化不一致的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!