2

jQueryで呼び出している次の非常に単純なCFCがあります。CF9でローカルに正常に動作しますが、クライアントはCF7であり、CF7のcffunctionにreturnformat属性はありません。どうすればこれを機能させることができますか?返された構造体でSerializeJSON()を使用しようとしましたが、機能しませんでした。ありがとう。

<cfsetting showdebugoutput="false">

<cffunction name="getPart" access="remote" returntype="any" returnformat="JSON">
    <cfargument name="myarg" type="string" required="yes">

    <cfset var ret = StructNew()>
    <cfset ret.success = true>

    <cftry>

        <cfquery name="ret.part" datasource="dsn">
        (query goes here)
        </cfquery>

        <cfset ret.recordcount = ret.part.recordcount>

        <cfcatch type="any">
            <cfset ret.success = false>
            <cfset ret.error = cfcatch>
        </cfcatch>

    </cftry>

    <cfreturn ret>

</cffunction>

4

3 に答える 3

0

toJSON.cfcをインクルードし、そこからメソッドを使用して構造をシリアル化します。

<cfset JSON = CreateObject( "component", "toJSON" )>
<cfreturn JSON.structToJSON(ret)>

toJSON.cfcを使用したことはありません。私はいつも古いJSON.cfcを使用していましたが、それへのリンクが見つかりません。クエリを含む構造体を処理できるかどうかはわかりません。できるのは試してみることだけだと思います。

編集:これが私が参照していたJSON.cfcです:http ://www.epiphantastic.com/cfjson/downloads.php

単に行う:

<cfset JSON = CreateObject( "component", "JSON" )>
<cfreturn JSON.encode(ret)>

あなたが渡すことができるより多くの議論があります、私はそれらを使ったことがありません。デフォルトはかなり良いです。

于 2012-01-26T15:39:01.147 に答える
0

あなたがそうするなら私は思う:-

<cffunction ....... output="true">
    ......
    ......
    <cfoutput>#ret#</cfoutput>
</cffunction>

次に、GETを介してそれを呼び出します。

確かにテストされていません。

于 2012-01-26T15:57:35.150 に答える
-1

CFLib.orgのjsonencodeとjsondeencodeを使用してみてください

于 2012-01-26T15:40:40.010 に答える