rest - ColdFusion 10 REST API : How to parse JSON in body of payload

标签 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"}

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

最佳答案

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

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

关于rest - ColdFusion 10 REST API : How to parse JSON in body of payload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15708804/

相关文章:

coldfusion - 使用 Coldfusion 发送大量电子邮件

coldfusion - JZ0SJ : Metadata accessor information was not found on this database

coldfusion - 两个 ColdFusion 应用程序的冲突映射

coldfusion - 如何获取 coldfusion 实例服务器名称

forms - 何时何地对用户输入进行编码?

cookies - Coldfusion 10 cookie 数据丢失

javascript - 需要实现 html 按钮来访问 REST 获取资源

rest - UDDI 存储库的替代方案是什么?

Perl HTTP::Request Put -> 方法不允许

java - 强制返回 JSON 的 Java Jersey RESTful Web 服务出现 HTTP 404 错误