The normal functionality of spreadsheet-cfml is to return a query with column1,column2,columnN as headers if the first row isn't used. But readCSV produces an empty column array in this case, which prevents deserializeJson( serializeJson( result ), false ) from working properly. An empty column array would be ignored normally, so it seems safe to populate this with column1,column2,columnN as headers if the first row isn't used.