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/