目前,我得到了这个输出(QueryBean):

但是我想要“正常”的JSON输出,比如这个:
[
{
"EventType": "active",
"InstanceId": "6728E65C-XXXX-XXXXX",
"CustomerId": "1000324234",
"Name": "bilderbuchverein Hermsen"
"Amount": 999999,
"StartDate": "August, 01 2019 00:00:00",
"ExpirationDate": null
},
{
"EventType": "active",
"InstanceId": "956FA492-XXXX-XXXXX",
"Name": "Phantasialand"
"CustomerId": "12345678999",
"Amount": 123456789,
"StartDate": "August, 14 2019 00:00:00",
"ExpirationDate": null
}
]如何更改输出格式?我的函数有参数produces="application/json"
<cffunction name="listEvents" access="remote" returnType="any" produces="application/JSON" httpmethod="GET" restpath="/events">
<cfquery datasource="hostmanager" name="plannedInstances">
SELECT * FROM licenses
</cfquery>
<cfreturn plannedInstances>
</cffunction>发布于 2019-09-04 08:07:34
要将JSON输出数据作为一个结构数组,可以使用应用程序级别的定义。在Application.cfc中,通过添加this.serialization.serializeQueryAs = "struct",可以将JSON输出数据序列化为一个结构数组,如下所示。
[
{
"CATEGORYID":20,
"CATEGORYNAME":"php",
"CATEGORYDESC":"php"
},
{
"CATEGORYID":21,
"CATEGORYNAME":"cf",
"CATEGORYDESC":"cf"
},
{
"CATEGORYID":22,
"CATEGORYNAME":".Net",
"CATEGORYDESC":".net"
}
]我在测试表中使用了相同的代码。(请参见示例代码结果屏幕截图)

此外,您还可以参考SerializeJSON的“查询序列化的附加格式”--我认为您不能用produces="application/json"来处理这个问题
我希望这对你有用!
发布于 2019-08-29 15:22:04
要达到你的目标,有两个步骤。
下面是一个以JSON格式返回结构数组的示例。它创建一个数组,并在查询循环中使用单独的结构填充它。插入查询列名作为结构键,最后将结构附加到根数组中。最后,从函数返回该数组。
<cffunction name="sampleCall" access="remote" returntype="any" returnformat="JSON">
<cfquery name="read" datasource="myDataSource">
SELECT * FROM myTable limit 10
</cfquery>
<cfset myArray = [] >
<cfloop query="read">
<cfset myStr = {} >
<cfset structInsert(myStr, "logid", read.logid)>
<cfset structInsert(myStr, "log_datetime", read.log_datetime)>
<cfset structInsert(myStr, "log_Details", read.log_Details)>
<cfset arrayAppend(myArray,myStr)>
</cfloop>
<cfreturn myArray / >
</cffunction>注意:示例使用我的查询中的示例列。您可以使用自己的列名。
如果您像下面的图像那样转储结果

https://stackoverflow.com/questions/57711249
复制相似问题