coldfusion—接收发布的JSON数据并对其进行解析

coldfusion—接收发布的JSON数据并对其进行解析,json,coldfusion,cfc,Json,Coldfusion,Cfc,这是我第一次编写cfc,它将从发布信息的外部web服务器捕获JSON数据 我正在使用一个新的服务,它可以设置为通过HTTP POST向我指定的URL发送一个JSON包,其中包含有关失败事务的信息 我想我应该设置一个带有远程访问的CFC来捕获JSON数据并将其反序列化为我们可以处理的内容。但是,我不知道如何在CFC中设置函数来接收数据 我将URL设置为www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=j

这是我第一次编写cfc,它将从发布信息的外部web服务器捕获JSON数据

我正在使用一个新的服务,它可以设置为通过HTTP POST向我指定的URL发送一个JSON包,其中包含有关失败事务的信息

我想我应该设置一个带有远程访问的CFC来捕获JSON数据并将其反序列化为我们可以处理的内容。但是,我不知道如何在CFC中设置函数来接收数据

我将URL设置为www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=json

为了测试它,我设置了一个简单的测试页面,该页面应该发布会话数据:

<cfhttp 
  result="result"
  method="post" 
  url="http://www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=json">

    <cfhttpparam type="header" name="content-type" value="application/json"/>
    <cfhttpparam type="body" value="#serializeJSON(session)#"/>

所以我弄不清楚的是,我最初将JSON数据存储在cfc中的cfargument名称是什么?我无法控制将发送JSON数据的远程服务


谢谢,

如果您正在读取HTTP请求正文中的内容,您将无法在arguments作用域中找到它-您需要直接从请求中提取它:

if (cgi.content_type EQ "application/json")
{
    myData = deserializeJSON(ToString(getHTTPRequestData().content));
}
我使用Taffy[1]框架来构建这样的服务(免责声明:我实际上帮助编写了框架中处理此案例的部分)


[1]

谢谢你,巴努拉!我试图创建一个cfc,直接接受发布的数据。使用您的答案,我创建了一个cfm页面,该页面接受数据,确保数据符合我们的预期,然后将其交给cfc进行处理。同样的技术在您的cfc方法中也同样适用。你的CFC不需要定义任何参数(CFARGUMENT或脚本)。这已经困扰了我好几个小时了。。。如果我收到帖子,我希望表单范围中的数据!显然不是,如果它是JSON发布在正文中。啊,好吧,吸取了教训。干杯