javascript - 使用 SerializeJSON 防止 ColdFusion 将字符串转换为数字

标签 javascript json coldfusion coldfusion-9

我有 ColdFusion 9.0.1 和最新的修补程序 (4)。 我需要 ColdFusion 返回所有带有引号的 JSON 数据(作为字符串)。我有以下问题:

<cfset test = StructNew()>
<cfset test.name = "1234.100">
<cfoutput>#SerializeJSON(test)#</cfoutput>

输出的文本是:

{"name":1234.100}

每个 javascript JSON 解析器都会将其转换为 1234.1,并且不会保留尾随的 0。我要么需要 ColdFusion 输出为字符串,要么需要一个 javascript 解析器来保留尾随的 0。有什么想法吗?

这是一个简化的例子。我正在从数据库中获取这些数据。

最佳答案

我知道这个问题很老,但作为一个新的 CF 开发人员,我遇到了同样的问题,虽然我成功地使用了上面的“字符串 Hack”,但最终我从 Cold Fusion 文档中找到了更适合 serializeJSON 的解决方案.

'Adobe ColdFusion(2016 版)更新 2 使您能够为结构中的键指定数据类型信息。这称为元数据。”

<cfscript>
   example = structnew();
   example.firstname = "Yes";
   example.lastname = "Man";
   writeoutput("<b>After serialization</b>:");
   // change the JSON key firstname to fname 
   metadata = {firstname: {type:"string",name:"fname"}};
   example.setMetadata(metadata);
   writeoutput(SerializeJSON(example));
</cfscript>

虽然该示例显示修改字符串“Yes”的元数据以保留字符串,而不是转换为 bool 值,但它同样适用于将数字转换为字符串以进行 JSON 序列化。

关于javascript - 使用 SerializeJSON 防止 ColdFusion 将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825437/

相关文章:

javascript - 匹配带空格和不带空格的模式

javascript - 显示为警报

javascript - 页面滚动 jQuery 导航

caching - ColdFusion 的 cfquery 静默失败

coldfusion - 需要在 Coldfusion 9 上运行 JPA + Hibernate java 项目的建议

javascript - 无法使用javascript更改css

javascript - 使用 JSON.stringify() 时如何忽略 .toJSON 函数?

c# - 将 JSON 反序列化为任何对象

java - 从资源加载时 GSON 出现 EOF 错误

coldfusion - 调用 onApplicationStart 使用粘性 session 重新初始化集群上的应用程序