That is the format ColdFusion uses when serializing query objects into JSON. If you want to create a JSON object that looks like the following:
[{"COLUMNS":[{ "title": "NAME"}, { "title": "COUNTY"}],"DATA":[["John Doe","Fresno"],["Billy","Fresno"],["Tom","Kern"],["King Smith","Kings"]]}]
what you want to do is this:
<cfset myquery = queryNew("name,county", "CF_SQL_VARCHAR,CF_SQL_VARCHAR") /> <!--- The second parameter is optional but a good habit to get into --->
<cfset queryAddRow(myquery) />
<cfset querySetCell(myquery, "name", "John Doe") />
<cfset querySetCell(myquery, "county", "Fresno") />
<cfset queryAddRow(myquery) />
<cfset querySetCell(myquery, "name", "Billy") />
<cfset querySetCell(myquery, "county", "Fresno") />
<cfset queryAddRow(myquery) />
<cfset querySetCell(myquery, "name", "Tom") />
<cfset querySetCell(myquery, "county", "Kern") />
<cfset queryAddRow(myquery) />
<cfset querySetCell(myquery, "name", "King Smith") />
<cfset querySetCell(myquery, "county", "Kings") />
<cfset myqueryJSON = serializeJSON(myquery) />
<cfoutput>#myqueryJSON#</cfoutput>
The format is particularly useful when consuming ColdFusion web services from ColdFusion - you can deserialize the JSON object and use it as a query right away. It goes without saying that you can do this with <cfquery> as well:
<cfquery name="myquery" datasource="mydatasource">
SELECT name, county
FROM mytable
</cfquery>
<cfset myqueryJSON = serializeJSON(myquery) />
There are plenty of tools that can help you transform a struct or array of structs into a query if need be.
UPDATE per OP's comments
We have the following:
"COLUMNS":["NAME","COUNTY"]
That needs to be in the following format:
"COLUMNS":[{ "title": "NAME"}, { "title": "COUNTY"}]
This solution is a bit kludgy, if you ask me, and I'm sure there's a more elegant one, but it does seem to work from my tests:
<cfset column_match = REMatchNoCase('"columns":\[[^\]]+\]', myqueryJSON)[1] />
<cfset newcolumns = REReplace(column_match , '("[^"]+"(?=[,\]]))', '{"title":\1}', "All") />
<cfset myqueryJSON = replace(myqueryJSON, column_match, newcolumns) />
You can find an explanation of the regex I used in the REReplace() at this Regex 101 Demo. It seems to work for any number of columns.