如何在coldfusion cfc中接收JSON POST请求

如何在coldfusion cfc中接收JSON POST请求,coldfusion,cfc,Coldfusion,Cfc,我有一个web服务cfc,它将从发布信息的外部应用程序捕获/接收JSON数据。 输入请求将采用类似于以下格式的JSON格式: 因此,我将收到CustomerId、用户名和密码,我只需要在数据库中验证这些字段并返回成功/失败消息 我的问题是-如何在cfc中接收json数据?我已经写了表单范围,因为我相信它会解决我的目的,但我不确定。 还有,如何解析json值 以下是我的CFC: <cfcomponent rest="true" restpath="/AimsWeb"> <!--

我有一个web服务cfc,它将从发布信息的外部应用程序捕获/接收JSON数据。 输入请求将采用类似于以下格式的JSON格式:

因此,我将收到CustomerId、用户名和密码,我只需要在数据库中验证这些字段并返回成功/失败消息

我的问题是-如何在cfc中接收json数据?我已经写了表单范围,因为我相信它会解决我的目的,但我不确定。 还有,如何解析json值

以下是我的CFC:

<cfcomponent rest="true" restpath="/AimsWeb"> <!--- REST Service--->

<cffunction name="AuthenticateUser" access="remote" httpmethod="GET"  returntype="any">

<!---- Defining Arguments--->
    <cfargument name="Username" type="string" required="Yes">
    <cfargument name="Password" type="string" required="Yes">
    <cfargument name="CustomerID" type="string" required="Yes">

<!---- Setting the Form Values (which we will get from AW+) and setting it to arguments passed--->
    <cfset Form.CustomerID = arguments.CustomerID>
    <cfset Form.Username = arguments.Username>
    <cfset Form.Password = arguments.Password>

<cfif StructKeyExists (form, 'CustomerID') and StructKeyExists(form, 'UserName') and StructKeyExists (form, 'password')>
   <cfquery name="AllUsers" datasource="#Application.GomDatasource#">
    SELECT u.UserTypeID, u.UserID, u.CustomerID, u.UserName, u.Password, u.active, u.locked
     FROM tblUsers u
     WHERE u.username = 'vasu'
    AND  u.CustomerID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Form.CustomerId#">
    <!---  OR u.username = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Form.userName#"> --->
<!---    OR u.password = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Form.password#"> --->
   </cfquery>

<!--- This is to check whether provided parameters are valid by checking the same in the database--->
<cfset local.StatusStruct = StructNew()>
<!--- <cfdump var="#AllUsers#"> --->
    <cfif AllUsers.RecordCount AND (AllUsers.Active EQ 0 OR AllUsers.locked EQ 1)>
        <cfset local.StatusStruct['errorCode'] = 401>
        <cfset local.StatusStruct['errorMessage'] = " User Account is locked">
    <cfelse>

        <cfif form.customerid EQ "" OR form.username EQ "" OR form.password EQ "">
            <cfset local.StatusStruct['errorCode'] = 400>
            <cfset local.StatusStruct['errorMessage'] = " Insufficient Input. Please provide Customer ID, UserName and Password">

        <cfelseif AllUsers.RecordCount AND form.CustomerId EQ AllUsers.CustomerID AND form.username EQ AllUsers.UserName AND form.password EQ AllUsers.Password>
            <cfset local.StatusStruct['errorCode'] = 200>
            <cfset local.StatusStruct['errorMessage'] = " Success">

        <cfelseif AllUsers.CustomerID NEQ form.CustomerID>
            <cfset local.StatusStruct['errorCode'] = 400>
            <cfset local.StatusStruct['errorMessage'] = " Customer Id doesn't exist">

         <cfelseif AllUsers.UserName NEQ form.UserName>
            <cfset local.StatusStruct['errorCode'] = 400>
            <cfset local.StatusStruct['errorMessage'] = " User not found">

         <cfelseif AllUsers.Password NEQ form.password>
            <cfset local.StatusStruct['errorCode'] = 400>
            <cfset local.StatusStruct['errorMessage'] = " Invalid Password">

        </cfif>

    </cfif>
</cfif>
<cfreturn local.StatusStruct> <!--- Returning the status in JSON form--->
  </cffunction>



</cfcomponent>
签出在coldFusion中发出的post/get请求


您可以将其作为字符串接收。然后在coldfusion反序列化JSON上进行谷歌搜索。@DanBracuk:Ye,我正在这样做。我已经尝试过:,并且类似地设置了其他值。但不起作用。从简单的事情开始。怎么样看看它给了你什么,然后从那里开始。好的,让我试试。我已经使用-serializejson创建了一个json字符串,然后在中解析了它:。我有一个包含三个值的“Struct”:CustomerID:100,密码:xxx,用户名:test。
  <cfoutput> cgi.request_method=#cgi.request_method#<br/> </cfoutput>
 <cfset req = getHTTPRequestData()> 
<cfoutput> getHTTPRequestData().method=#req.method# </cfoutput>