2017-02-10 2 views
0

Я использую ColdFusion в 2016 году, и вот что я делаю:прохождение JSON в cfhttpparam

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

ул, как это: если я сбросить их

'{"ONE":{"GROUP":"my group"}}' 

, если он идет в cfhttpparam с помощью serializeJSON она показывает мне, как:

"error":"JSON error: 822: unexpected token at ''{\"ONE\":{\"GROUP\":\"my group\"}}''"} 

я попробовал один и тот же код в почтальон, но в POSTman для JSOn отправки я должен был использовать тело в качестве сырья и выбрать содержание, как application/json и работал там

Это, как я генерировать мой stFields

<cfset stFields = StructNew()> 
    <cfset stFields.one = arguments.structform> 
    <cfdump var="'#serializeJSON(stFields)#'"> 

ответ

1

Удалите одиночные кавычки:

<CFHTTPPARAM VALUE="#serializeJSON(stFields)#" TYPE="body"> 

Старый ответ:

serializeJSON function сериализацию объектов (структур, массивов, запросов, компонент s, простые значения) и выводит содержимое как строку JSON. Ваш stFields уже строка JSON, таким образом, нет необходимости сериализовать его (опять же):

<CFHTTPPARAM VALUE="#stFields#" TYPE="body"> 
+0

Нет Его не Алекс, позвольте мне написать, как я генерации 'stFields'. Я редактирую свой вопрос –

+0

Я отредактировал свой ответ. @weqsd – Alex

+0

, если я удаляю одиночные коды, я получаю сообщение об ошибке, которое передал json string в api, недопустимо, и это сильно смущает то, что он ожидает –

Смежные вопросы