对于 cfcatch 块,SerializeJSON 和 DeserializeJSON 无法正常工作
SerializeJSON and DeserializeJSON not working properly for cfcatch block
我需要将所有 ColdFusion 异常详细信息存储在数据库中 table。所以我打算把cfcatch结构序列化存入db,但是我有一个issue.The结构,序列化前后不一样。因此,出于测试目的,这是我在本地试过的一小段代码,
<cftry>
<cfset a = 5/0>
<cfcatch type="any">
<cfdump var="#cfcatch#">
<cfset a = SerializeJSON(cfcatch)>
<cfdump var = "#DeserializeJSON(a)#">
</cfcatch>
</cftry>
这是第一个转储(原始 cfcatch)的屏幕截图。
这是第二次转储的屏幕截图(即序列化然后反序列化)
作为对 OP 问题的评论输入,但也添加在这里以防对其他人有用。
尝试:
<cfset a = SerializeJSON(duplicate(cfcatch))>
虽然当您转储它时,cfcatch
数据看起来像一个 ColdFusion 结构,但实际上并非如此,duplicate
强制它成为一个 ColdFusion 结构,然后它可以序列化。请注意,duplicate 会执行深层复制。
有关 cfcatch 是什么的更多信息,请参阅 。
我需要将所有 ColdFusion 异常详细信息存储在数据库中 table。所以我打算把cfcatch结构序列化存入db,但是我有一个issue.The结构,序列化前后不一样。因此,出于测试目的,这是我在本地试过的一小段代码,
<cftry>
<cfset a = 5/0>
<cfcatch type="any">
<cfdump var="#cfcatch#">
<cfset a = SerializeJSON(cfcatch)>
<cfdump var = "#DeserializeJSON(a)#">
</cfcatch>
</cftry>
这是第一个转储(原始 cfcatch)的屏幕截图。
作为对 OP 问题的评论输入,但也添加在这里以防对其他人有用。
尝试:
<cfset a = SerializeJSON(duplicate(cfcatch))>
虽然当您转储它时,cfcatch
数据看起来像一个 ColdFusion 结构,但实际上并非如此,duplicate
强制它成为一个 ColdFusion 结构,然后它可以序列化。请注意,duplicate 会执行深层复制。
有关 cfcatch 是什么的更多信息,请参阅 。