возвращая объект JSON - PullRequest
       21

возвращая объект JSON

2 голосов
/ 14 июня 2019

есть ли способ вернуть реальный объект JSON через функцию в ColdFusion? Мое текущее решение состоит в том, чтобы превратить запрос в строку, а в другом CF-файле я преобразую его обратно в объект JSON:

<cffunction name="addLicense" access="remote" returntype="string" returnFormat="JSON" httpmethod="POST">
  <cfquery datasource="hostmanager" name="createCustomer">
    SELECT * FROM license
  </cfquery>
  <cfreturn serializeJSON(createCustomer)>
</cffunction>

Ответы [ 3 ]

4 голосов
/ 14 июня 2019

Существует много различных способов использования serializeJSON

<cfscript>
    myQuery = queryNew("id,name,amount","Integer,Varchar,Integer", 
                [ 
                        {id=1,name="One",amount=15}, 
                        {id=2,name="Two",amount=18}, 
                        {id=3,name="Three",amount=32} 
                ]); 
    writeOutput("The new query is:")
    writeDump(myQuery)
</cfscript>

<cfoutput>
    <h4>Default</h4>
    <p><code>#serializeJSON(myQuery)#</code></p>
    <h4>Row</h4>
    <p><code>#serializeJSON(myQuery, "row")#</code></p>
     <h4>Column</h4>
    <p><code>#serializeJSON(myQuery, "column")#</code></p>
     <h4>Struct</h4>
    <p><code>#serializeJSON(myQuery, "struct")#</code></p>
</cfoutput>

, что приводит к

enter image description here

Смотри: https://cffiddle.org/app/file?filepath=58f7cee2-dabb-42f8-91ef-7dd41e1691c0/49ad94cb-23e4-4c9c-9986-b7c1d4c15e3a/c818a99e-4476-4625-8bec-657bcfa9b0e2.cfm

3 голосов
/ 14 июня 2019

В ColdFusion2016 я использую что-то вроде этого.

deserializeJSON(serializeJSON(createCustomer, 'struct'))

Это в основном дает вам массив структур (со столбцами запросов в качестве структурных ключей).

0 голосов
/ 24 июня 2019

Вы можете использовать returnType = "query", и функция вернет результаты в формате JSON.Возможно, вам придется использовать <cfcontent type="application/json">, чтобы убедиться, что возвращаемый тип содержимого правильный.

...