Sorcerer's IsleCode QueryParam Scanner / files

 1<cfcontent type="text/json"/><cfoutput>{
 2
 3	"info" :
 4	{ "count" :
 5		{ "alerts"    : #Info.Totals.AlertCount#
 6		, "riskfiles" : #Info.Totals.RiskFileCount#
 7		, "queries"   : #Info.Totals.QueryCount#
 8		, "files"     : #Info.Totals.FileCount#
 9		}
10	, "timetaken" : #Info.Totals.Time#
11	, "timeout"   : #Info.Timeout#
12	}
13
14	, "files" : </cfoutput>
15	[<cfoutput query="Data" group="FileId">
16	<cfif CurrentRow GT 1>,</cfif>
17		{ "id"         : #serializeJson(FileId)#
18		, "name"       : #serializeJson(FileName)#
19		, "alertcount" : #QueryAlertCount#
20		, "queries" :
21			<cfset SubRow = 0 />
22			[<cfoutput><cfif SubRow++ >,</cfif>
23				{ "id" : #serializeJson(QueryId)#
24				, "name" : #serializeJson(QueryName)#
25				<cfif isNumeric(QueryStartLine)>, "startline" : #QueryStartLine#
26				, "endline" : #QueryEndLine#</cfif>
27				<cfif Len(ScopeList)> , "scopes" : #serializeJson(ScopeList)#</cfif>
28				, "code" : #serializeJson(QueryCode)#
29				}
30			</cfoutput>]
31		}
32	</cfoutput>
33	<cfoutput>]
34
35}</cfoutput>