Serialization SerializeJSON和DeserializeJSON对于cfcatch块工作不正常

Serialization SerializeJSON和DeserializeJSON对于cfcatch块工作不正常,serialization,coldfusion,coldfusion-9,coldfusion-10,Serialization,Coldfusion,Coldfusion 9,Coldfusion 10,我需要将所有ColdFusion异常详细信息存储在数据库表中。所以我计划序列化cfcatch结构并将其存储在数据库中,但我有一个问题,序列化前后的结构不一样。出于测试目的,这里是我在本地计算机上尝试的一小段代码 <cftry> <cfset a = 5/0> <cfcatch type="any"> <cfdump var="#cfcatch#"> <cfset a = SerializeJSON(cfcatch)&g

我需要将所有ColdFusion异常详细信息存储在数据库表中。所以我计划序列化cfcatch结构并将其存储在数据库中,但我有一个问题,序列化前后的结构不一样。出于测试目的,这里是我在本地计算机上尝试的一小段代码

<cftry>
 <cfset a = 5/0>
 <cfcatch type="any">
     <cfdump var="#cfcatch#">
     <cfset a = SerializeJSON(cfcatch)>
     <cfdump var = "#DeserializeJSON(a)#">
 </cfcatch>
</cftry>

这是第一次转储(原始cfcatch)的屏幕截图。 这是第二次转储的屏幕截图(即序列化然后反序列化)

作为对OP问题的评论输入,但在此处添加,以防对其他人有用

尝试:


虽然当您转储它时,
cfcatch
数据看起来像一个ColdFusion结构,但实际上并非如此,
duplicate
将它强制为一个ColdFusion结构,然后它可以序列化该结构。请注意,复制会产生深度复制


有关什么是cfcatch的更多信息,请参阅。

尝试
-请注意,duplicate会进行深度复制。感谢@JohnWhish,它正在工作,为什么我们需要在此处使用duplicate函数?cfcatch变量实际上不是ColdFusion结构,重复项将其强制为ColdFusion结构,然后可以序列化。@user3714162检查
cfcatch
type的答案。
 <cfset a = SerializeJSON(duplicate(cfcatch))>