首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将json传递给cfhttpparam

将json传递给cfhttpparam
EN

Stack Overflow用户
提问于 2017-02-10 17:41:29
回答 1查看 1.2K关注 0票数 0

我正在使用ColdFusion 2016,下面是我正在做的事情:

代码语言:javascript
复制
<cfhttp method="put" url="https://www.colorfulapi.com/testpage/#arguments.Name#" username="#request.APIusername#" password="#request.APIToken#" result="results">
    <cfhttpparam type="header" name="Content-Type" value="application/json">
    <cfif isStruct(arguments.structform) AND !StructIsEmpty(arguments.structform)>
    <CFHTTPPARAM VALUE="'#serializeJSON(stFields)#'" TYPE="body">
    </cfif>
  </cfhttp>

st是这样的:如果我甩了他们

代码语言:javascript
复制
'{"ONE":{"GROUP":"my group"}}'

如果它使用serializeJSON转到cfhttpparam,它会向我显示如下:

代码语言:javascript
复制
"error":"JSON error: 822: unexpected token at ''{\"ONE\":{\"GROUP\":\"my  group\"}}''"}

我在POSTman中尝试了相同的代码,但是在POSTman中,对于JSOn发送,我必须使用主体作为原始,选择内容作为application/json,并且它在那里工作。

我就是这样生成我的stFields的

代码语言:javascript
复制
<cfset stFields = StructNew()>
  <cfset stFields.one = arguments.structform>
  <cfdump var="'#serializeJSON(stFields)#'"> 
EN

回答 1

Stack Overflow用户

发布于 2017-02-10 18:05:35

删除单引号:

代码语言:javascript
复制
<CFHTTPPARAM VALUE="#serializeJSON(stFields)#" TYPE="body">

旧的答案:

序列化对象(结构、数组、查询、组件、简单值)并将内容输出为JSON字符串。您的stFields已经是一个JSON字符串,因此不需要序列化它(再次):

代码语言:javascript
复制
<CFHTTPPARAM VALUE="#stFields#" TYPE="body">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42165514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档