I recall reading a blog posting that mentioned that CF returns
non-standard JSON by default. Its a more compact design but required a
custom data reader for the Ext library. While that isn't jQuery, it
might help you to your goal:

http://blog.cutterscrossing.com/index.cfm/2008/11/20/ColdFusion-Query-Json-Data-Reader

Judah

On Mon, Jan 5, 2009 at 11:42 AM, Joe <joe_ts...@hotmail.com> wrote:
> All,
>
> I recently created a small CFC returning query results in JSON format.  The
> querying works, the regular CF page is able to call the CFC as a WSDL page
> properly passing params, and I am getting back JSON-like content.  However I
> have been unable to parse the JSON content like an array within jQuery.  I
> put the JSON variable inside an alert function in the CF page and I got a
> JSON-like string.
>
> I then replaced the web service URL in my CF page with the one from the
> following page:
> http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback
> When I reloaded the same CF page I got "[object Object]" and I was able to
> parse the results from that web service.  So it seems like I'm missing
> something in my CFC that turns my JSON content into an object.  I hope it's
> something obvious...
>
> My code is as follows:
>
> ==================================================
> Component:
>
> <cfcomponent output="no">
>
>  <cffunction name="getDateStamp" returntype="string" output="no"
> access="remote">
>        <cfreturn DateFormat(Now())>
>  </cffunction>
>
>  <cffunction name="getEmpInfo" access="remote" returntype="string"
> returnFormat="json" output="no">
>     <cfargument name="searchparam" required="no" default="">
>
>     <cfscript>
>    strQuery = "SELECT empname, oprid , str(emplid) as emplid FROM
> cae_alionOrgByUser where 1=1";
>
>    // "structKeyExists" is needed to use REFind
>    if ( (structKeyExists(arguments,"searchparam") eq "Yes") AND
> (searchparam neq "") ) {
>     if (REFind("[A-Za-z\.]+", searchparam) gt 0) {
>      strQuery = strQuery & " and oprid like '%#searchparam#%'";
>     }
>     if (REFind("\d+", searchparam) gt 0) {
>      strQuery = strQuery & " and emplid like '%#searchparam#%'";
>     }
>    }
>
>    strQuery = strQuery & " ORDER BY empname";
>
>   </cfscript>
>
>        <cfquery name="getDis" datasource="idb4PeopleSoft">
>         #preservesinglequotes(strQuery)#
>        </cfquery>
>        <cfset dis = serializeJSON(getDis)>
>
>        <!---
>        <cfoutput query="getDis">
>
>        <cfset aEmpName = ListToArray(empname,",")>
>        <cfset aEmpName0 = ListToArray(aEmpName[2]," ")>
>    <cfset lname = aEmpName[1]>
>        <cfset fname = aEmpName0[1]>
>        <cfset minit = "">
>    <cfif arraylen(aEmpName0) gt 1>
>          <cfset minit = aEmpName0[2]>
>        </cfif>
>
>         <cfset strEmpInfo = strEmpInfo & strComma & "" & fname & " " &
> minit & " " & lName & " (" & oprid & ":" & emplid & ")">
>    <cfif cntEmpInfo eq 0>
>             <cfset strComma = """,""">
>            </cfif>
>            <cfset cntEmpInfo = 1>
>   --->
>
>
>        <!--- </cfoutput> --->
>
>        <!--- <cfset strEmpInfo = strEmpInfo & """]"> --->
>        <!--- <cfreturn serializejson(getDis)> --->
>        <cfreturn dis>
>  </cffunction>
> </cfcomponent>
>
> ==================================================
> CF page: JavaScript
>
>   var wsURL = '/ws/emp.cfc?wsdl';
>   // var wsURL =
> 'http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any
> &format=json&jsoncallback=?';
>   $.getJSON(wsURL, {
>    method: 'getEmpInfo',
>    searchParam: '101'
>    },
>    function(jsondata) {
>     alert(jsondata);
>     alert(jsondata.DATA);
>     // alert(jsondata.title);
>     // $.each(jsondata.items, function(i,item){
>     //  alert(item);
>     // });
>    }
>   );
>
> ==================================================
>
> tia,
>
>  - Joe
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:317427
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to