返回一个 JSON 对象
returning a JSON object
有没有办法通过 ColdFusion 中的函数 return 一个真正的 JSON 对象?
我当前的解决方案是将查询转换为字符串,然后在另一个 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>
在ColdFusion2016中我用的是这样的。
deserializeJSON(serializeJSON(createCustomer, 'struct'))
这基本上为您提供了一个结构数组(查询列作为结构键)。
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>
结果为
您可以使用 returnType="query" 并且该函数将 return 结果采用 JSON 格式。您可能需要使用 <cfcontent type="application/json">
来确保 returned 内容类型正确。
现在我正在使用这个解决方案 return JSON:
returntype="any" produces="application/json"
有没有办法通过 ColdFusion 中的函数 return 一个真正的 JSON 对象? 我当前的解决方案是将查询转换为字符串,然后在另一个 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>
在ColdFusion2016中我用的是这样的。
deserializeJSON(serializeJSON(createCustomer, 'struct'))
这基本上为您提供了一个结构数组(查询列作为结构键)。
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>
结果为
您可以使用 returnType="query" 并且该函数将 return 结果采用 JSON 格式。您可能需要使用 <cfcontent type="application/json">
来确保 returned 内容类型正确。
现在我正在使用这个解决方案 return JSON:
returntype="any" produces="application/json"