Code I

public function parseCSV(rawData:String):Array {
	var ii:Number, columnArray:Array, rowObject:Object;
	var returnArray:Array = new Array();
	var rowDelimiter:String = (rawData.indexOf('\r\n') > -1) ? '\r\n' :
	(rawData.indexOf('\r') > -1) ? '\r' : '\n';
	var columnDelimiter:String = qualifier + ',' + qualifier;
	var rowsArray:Array = rawData.split(rowDelimiter);
	if(!columns.length) {
		columns = removeQualifier(rowsArray.shift().toString(),
		qualifier).split(columnDelimiter);
	}
	for(var i:Number = 0; i < rowsArray.length; i++) {
		columnArray = removeQualifier(rowsArray[i].toString(),
		qualifier).split(columnDelim);
		if(columnArray.length == columns.length) {
			rowObject = new Object();
			for(ii = (columnArray.length - 1); ii >= 0; ii--) {
				rowObject[columns[ii]] = columnArray[ii];
			}
			returnArray.push(rowObject);
		}
	}
	return returnArray;
}

Code II

private function removeQualifier(originalString:String, qualifier:String):String {
	var modifiedString = originalString;
	if(modifiedString.charAt(0) == qualifier) {
		modifiedString = modifiedString.substring(1);
	}
	if(modifiedString.charAt(modifiedString.length - 1) == qualifier) {
		modifiedString = modifiedString.substring(0, (modifiedString.length - 1));
	}
	return modifiedString;
}

Class Code