Coldfusion REST - 序列化CFC阵列

时间:2013-03-28 02:27:39

标签: rest serialization coldfusion cfc coldfusion-10

您好我正在尝试从我的一个REST端点序列化一系列CFC。我在Adobe帮助中找到了这个Example: Array of CFC Serialization,这正是我想要做的(我可以在必要时发布一些代码)但是当我尝试使用returnType="myCFC[]"时它失败了:

  

“消息”:“数组元素类型不匹配”

奇怪的是,如果我实例化同一个对象并从.cfm文件调用该方法,cfdump会按预期显示包含数据的对象数组。但是从我的AJAX调用中,对象的属性值都是null。但是,如果我使用return serializeJSON(myArrayOfCFCs),则属性具有数据。但我不想这样做,因为它会否定内容协商的使用。

只是好奇是否有人让这个工作。

更新

 <cffunction name="getPatient" access="remote" httpmethod="GET" returntype="Patient[]" produces="text/json" restpath="/{PatientId}">
    <cfargument name="PatientId" type="numeric" required="true" restargsource="Path" />

    <cfset local.response = ArrayNew(1) />
    <cfset local.patient = getPatientGatewayObject().getPatient(PatientId)>

    <cfset local.patientObject = createObject("component", "Patient").init(argumentCollection=queryRowToStruct(local.patient)) />
    <cfset arrayAppend(local.response, local.patientObject) />

    <cfreturn local.response />

 </cffunction>

这样可行,但最终不是我想要的:

 <cffunction name="getPatient" access="remote" httpmethod="GET" returntype="Patient" produces="text/json" restpath="/{PatientId}">
    <cfargument name="PatientId" type="numeric" required="true" restargsource="Path" />

    <cfset local.response = ArrayNew(1) />
    <cfset local.patient = getPatientGatewayObject().getPatient(PatientId)>

    <cfset local.patientObject = createObject("component", "Patient").init(argumentCollection=queryRowToStruct(local.patient)) />
    <cfset arrayAppend(local.response, local.patientObject) />

    <cfreturn serializeJSON(local.response) />

 </cffunction>

0 个答案:

没有答案