coldfusion - 使用 cfm 中的 SerializeJSON 如何只输出数据部分?

标签 coldfusion cfml

SerializeJSON(cfquery) 

创建一个如下所示的 JSON:

"COLUMNS":["POINT","LOCATION"],"DATA":[["41.322365,-71.679251","Ashaway...

如何只输出 JSON 数据?

即...

[["41.322365,-71.679251","Ashaway...

最佳答案

我不认为有一种方便的方法可以做到这一点,除非您可以修改序列化查询的代码;否则你将需要使用一些字符串操作。但是,假设您可以访问序列化查询的 CF 代码,这有点不正统但确实有效:

<!---Serialize and Deserialize the cfquery to shortcut obtaining a Structure--->
<cfset queryAsStruct = DeSerializeJSON(SerializeJSON(cfquery))>
<!---Now serialize the data key of the struct--->
<cfset dataJSON = SerializeJSON(queryAsStruct.data)>

正如我所说,也许不是最漂亮的……但似乎已经完成了。将 cfquery 转换为结构可能有更方便/更好的实践方法,但这种方法对我来说代码行最少。

编辑:只是想解释为什么这有效。 JSON 字符串在被 ColdFusion 反序列化时不再被检测为查询对象,只是一个普通的结构,因此创建并填充了“DATA”键。这样您就可以将其作为结构的键来访问。当 cfquery 是一个查询对象时,虽然它仍然是一个“结构”类型的对象,但它有一些特殊的注意事项,可以防止您直接访问数据键(据我所知)。

关于coldfusion - 使用 cfm 中的 SerializeJSON 如何只输出数据部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495786/

相关文章:

coldfusion - 如何使用 cfscript 从另一个 cfm 页面调用 cfc 中的 cffunction?

forms - 带括号的 ColdFusion 变量名称

coldfusion - 使用 cfscript 创建的查询的 cfoutput

coldfusion - 如何将 cftimer 显示的时间存储在变量中?

mysql - ColdFusion 和 MySql 日期格式

coldfusion - 如何获得关联数组符号以分配简单值

coldfusion - 循环 Cfquery 还是 Struct?

sql-server - 如何运行非常大的查询(SQL Server 和 ColdFusion)

coldfusion - 对很少更改的应用程序变量执行 cflock

orm - 有没有办法在处理 ORM 对象时将 top 属性全局应用于 cfdump/writeDump?