ColdFusion 10 REST API:如何在负载体中解析JSON

ColdFusion 10 REST API:如何在负载体中解析JSON,rest,coldfusion,coldfusion-10,Rest,Coldfusion,Coldfusion 10,我正在使用ColdFusion 10的新内置RESTful web服务特性。发布数据时,我希望在请求主体中以JSON的形式发送有效负载。例如: PUT https://mycompany.com/rest/v1.0/widget/261469 HTTP/1.1 Host: mycompany.com Connection: keep-alive Content-Length: 13 Content-Type: application/json {"foo":"bar"} 一旦这些数据通过AP

我正在使用ColdFusion 10的新内置RESTful web服务特性。发布数据时,我希望在请求主体中以JSON的形式发送有效负载。例如:

PUT https://mycompany.com/rest/v1.0/widget/261469 HTTP/1.1
Host: mycompany.com
Connection: keep-alive
Content-Length: 13
Content-Type: application/json

{"foo":"bar"}

一旦这些数据通过API发布,我应该如何解析和反序列化服务器上的JSON数据?ColdFusion REST服务是否有内置的方法来实现这一点?通过将cfargument上的restargsource属性设置为“form”,似乎本机支持反序列化“form”类型(即content-type application/x-www-form-urlencoded),但我找不到任何关于如何本机反序列化JSON数据的示例。我希望得到类似restargsource=“json”的东西,但这并不存在。推荐的方法是什么?

经过大量研究,ColdFusion 10的REST API请求处理程序似乎没有一种本地方法可以为我们自动解析JSON请求。我们需要按如下方式手动执行此操作:

<cfset var json = ToString(GetHttpRequestData().content) />
<cfif !IsJSON(json)>
    <cfthrow errorCode="400" type="ArgumentException" message="#"Invalid JSON string: " & json#" />
</cfif>

<cfset var jsonObject = DeserializeJSON(json) />

您也可以尝试

VARIABLES.postJSON = StructNew();
StructInsert(VARIABLES.postJSON, 'parameter1','xxx');

然后用户
#SerializeJSON(VARIABLES.postJSON)#

这似乎没有回答问题,这是关于反序列化而不是序列化的。你能详细说明一下吗?