本文介绍了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/

看起来您有四个选项.

  1. 修改您的代码以使用字符串而不是数字
  2. 将您的 CF 服务器回滚到 9.0
  3. 使用 Railo 代替 Adob​​e CF
  4. 切换到其他 JSON 序列化程序.显然有两个命名的 CFJSON:http://cfjson.riaforge.org/ 和 Dan Roberts 的建议 http://www.epiphantastic.com/cfjson/
  1. Modify your code to expect strings instead of numbers
  2. Roll back your CF server to 9.0
  3. Use Railo instead of Adobe CF
  4. 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 序列化不一致的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-29 23:43