Question

J'ai le CFC très simple et très simple que j'appelle avec jQuery. Cela fonctionne bien localement sur CF9, mais le client est sur CF7, et il n'y a pas d'attribut de retour en cffonction dans CF7. Comment puis-je faire fonctionner cela? J'ai essayé d'utiliser SerializeJson () sur la structure retournée, mais cela n'a pas fonctionné. Merci.

<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>

Était-ce utile?

La solution

Essayez d'utiliser jsonencode et jSondeencode à partir de cflib.org

Autres conseils

Inclure le tojson.cfc, ensuite utiliser des méthodes à partir de celui-ci pour sérialiser votre structure.

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

Je n'ai jamais utilisé le tojson.cfc; J'ai toujours utilisé l'ancien JSON.cfc, mais je ne trouve pas de lien vers lui. Je ne sais pas s'il peut gérer une structure qui contient une requête, je suppose que tout ce que vous pouvez faire est de l'essayer.

Edit: voici le json.cfc que je faisais référence: http://www.epiphantastic.com/cfjson/downloads.php

Faites simplement:

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

Il y a plus d'arguments que vous pouvez transmettre, je ne les ai jamais utilisés. Les valeurs par défaut sont assez bonnes.

Je pense que si tu le fais: -

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

Ensuite, appelez cela via Get, cela devrait fonctionner.

Certes non testé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top