Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从returntype为JSON的方法返回两个记录集?_Json_Coldfusion_Coldfusion 10 - Fatal编程技术网

从returntype为JSON的方法返回两个记录集?

从returntype为JSON的方法返回两个记录集?,json,coldfusion,coldfusion-10,Json,Coldfusion,Coldfusion 10,我有一个CFC,它包含一个方法/函数,运行一个存储过程,然后输出两个结果集。类似(缩短了读取速度代码): 首先,我可以从单个方法返回UserOrders和UserRegions结果集吗 如果这不是在CFC中,而是在CFM页面中,那么我可以通过使用#UserOrders.OrderID#或#UserRegions.UserID#轻松访问这两个结果 因为它是从CFC返回的,而且也是作为JSON数据返回的,所以如何实现我试图实现的目标?函数只能返回单个对象。只需将查询放在另一个对象(如数组或结构)

我有一个CFC,它包含一个方法/函数,运行一个存储过程,然后输出两个结果集。类似(缩短了读取速度代码):


首先,我可以从单个方法返回
UserOrders
UserRegions
结果集吗

如果这不是在CFC中,而是在CFM页面中,那么我可以通过使用
#UserOrders.OrderID#
#UserRegions.UserID#
轻松访问这两个结果


因为它是从CFC返回的,而且也是作为JSON数据返回的,所以如何实现我试图实现的目标?

函数只能返回单个对象。只需将查询放在另一个对象(如数组或结构)中,然后返回该对象而不是查询。我会使用结构,因为它们比数组更直观。然后在JSON中,您可以通过键名“orders”或“regions”访问每个结果集。我现在无法对此进行测试,但大致如下:

<cffunction name="OrdersandRegions" returntype="struct" returnformat="JSON">
    <cfstoredproc procedure="account_customer_EnrolmentsSEL" ...>
        <cfprocresult name = "Local.UserOrders" resultset="1">
        <cfprocresult name = "Local.UserRegions" resultset="2">
    </cfstoredproc>

    <cfset Local.result = {}>
    <cfset Local.result["orders"] = Local.UserOrders>
    <cfset Local.result["regions"] = Local.UserRegions>

    <cfreturn Local.result>
</cffunction>


(旁注,请确保将所有函数局部变量的作用域设置为Local/var。)

awesome!你是现在才想到的,还是根据过去的经验知道如何解决这个问题?只是过去的经验。大多数开发人员迟早会遇到这种情况。
<cffunction name="OrdersandRegions" returntype="struct" returnformat="JSON">
    <cfstoredproc procedure="account_customer_EnrolmentsSEL" ...>
        <cfprocresult name = "Local.UserOrders" resultset="1">
        <cfprocresult name = "Local.UserRegions" resultset="2">
    </cfstoredproc>

    <cfset Local.result = {}>
    <cfset Local.result["orders"] = Local.UserOrders>
    <cfset Local.result["regions"] = Local.UserRegions>

    <cfreturn Local.result>
</cffunction>