struct - 长整数正在转换为科学记数法 - ColdFusion

标签 struct coldfusion

我试图通过一个函数传递一个结构,但其中的整数正在转换为科学记数法。

反序列化前:

{"businessUnitValidList":2003051509034372557922
  , "shortMessage":"Success"
  , "longMessage":"Request Completed Successfully."
  , "status":20001
} 

反序列化后:
 businessUnitValidList  2.00305150903E+021 

我尝试将其转换为字符串,但它仍然给我相同的输出。有任何想法吗?

注意:如果我的 businessUnitValidList 中有多个值, 数字按应有的方式显示。

编辑

这是当前的代码迭代:
<cfloop array="#businessUnitArray#" index="i">

   <cfquery name="validatebusinessUnit" datasource="dbproduction">
       select doctorid from survey.dbo.clientLocationMap
       where clientbrandid = '#arguments.clientBrandid#'
       and clientLocation = '#i#'
   </cfquery>

   <cfif validatebusinessUnit.recordcount gt 0>
       <cfset businessUnitValidList = listAppend(businessUnitValidList,toString(validatebusinessUnit.doctorid),",")>
   <cfelse>
       <cfset businessUnitInValidList = listAppend(businessUnitInValidList,i,",")>
   </cfif>

</cfloop>

<cfif businessUnitInValidList neq ''>
    <cfset ResponseStruct['BusinessUnitCodes']['businessUnitMixResponse']['businessUnitInValidList'] = "#businessUnitInValidList#">
    <cfset ResponseStruct['BusinessUnitCodes']['businessUnitMixResponse']['businessUnitValidList'] = "#businessUnitValidList#">
    <cfreturn serializeJSON(ResponseStruct['BusinessUnitCodes']['businessUnitMixResponse'])>
<cfelse>
    <cfset ResponseStruct['BusinessUnitCodes']['businessUnitSuccess']['businessUnitValidList'] = "#businessUnitValidList#">
    <cfreturn serializeJSON(ResponseStruct['BusinessUnitCodes']['businessUnitSuccess'])>
</cfif>

最佳答案

ColdFusion 的 JSON 序列化存在问题,并且可能因版本甚至修补程序而异。正如 Jedihomer Townend 在评论中提到的,前导空格应该强制 CF 将其视为字符串而不是强制转换。

我刚刚在 CF10、11 和 2016 上尝试过这个并保留了输入。

<cfscript>
a = {
  "businessUnitValidList":" 2003051509034372557922",
  "shortMessage":"Success",
  "longMessage":"Request Completed Successfully.",
  "status":20001
};
json = serializeJSON(a);
b = deserializeJSON(json);

writeDump(b);
</cfscript>

你可以在这里尝试:

http://trycf.com/gist/70b86fbb57f752125f35/acf?theme=monokai

关于struct - 长整数正在转换为科学记数法 - ColdFusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36058910/

相关文章:

xml - 使用 XSLT 将 XML 转换为 XML - 难看的 ColdFusion 导出

c - 是否可以在运行时更改结构的定义?

go - 解码 json 响应结构为空

rest - 冷聚变 10 : Handling and Logging Errors With New REST API

ColdFusion 2018 不会将 undefined 解释为空字符串

sql-server - 使用 ColdFusion 将日期时间(毫秒)插入 MSSQL 数据库

cfinput 类型 ="datefield"的 CSS 渗透

c - 使用指定的初始值设定项来初始化结构中的二维字符数组初始值设定项会在 VS2013 中发出错误 C2078

c - 分配给结构中的静态数组时堆缓冲区溢出

c - 如何使用struct向堆排序插入元素