Package groovy.csv
Class CsvSlurper
java.lang.Object
groovy.csv.CsvSlurper
Represents a CSV parser.
Usage:
def csv = new groovy.csv.CsvSlurper().parseText('name,age\nAlice,30\nBob,25')
assert csv[0].name == 'Alice'
assert csv[1].age == '25'
- Since:
- 6.0.0
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a slurper that uses comma-separated columns, double quotes, and treats the first row as headers. -
Method Summary
Modifier and TypeMethodDescriptionParse CSV from a UTF-8 encoded file.Parse CSV from a file decoded with the given charset.parse(InputStream stream) Parse CSV from a UTF-8 encoded input stream.parse(InputStream stream, Charset charset) Parse CSV from an input stream decoded with the given charset.Parse CSV from a reader.Parse CSV from a UTF-8 encoded path.Parse CSV from a path decoded with the given charset.<T> List<T>Parse CSV from a UTF-8 encoded file into typed objects.<T> List<T>Parse CSV from a file decoded with the given charset into typed objects.<T> List<T>Parse CSV from a reader into typed objects.<T> List<T>Parse CSV into typed objects using Jackson databinding.<T> List<T>Parse CSV from a UTF-8 encoded path into typed objects.<T> List<T>Parse CSV from a path decoded with the given charset into typed objects.Parse the content of the specified CSV text.setColumns(String... columns) Set explicit column names, typically for CSV without a header row.setColumns(List<String> columns) Set explicit column names, typically for CSV without a header row.setQuoteChar(char quoteChar) Set the quote character (default: double-quote).setSeparator(char separator) Set the column separator character (default: comma).setUseHeader(boolean useHeader) Set whether the first row is a header row (default: true).
-
Constructor Details
-
CsvSlurper
public CsvSlurper()Creates a slurper that uses comma-separated columns, double quotes, and treats the first row as headers.
-
-
Method Details
-
setSeparator
Set the column separator character (default: comma).- Parameters:
separator- the separator character- Returns:
- this slurper for chaining
-
setQuoteChar
Set the quote character (default: double-quote).- Parameters:
quoteChar- the quote character- Returns:
- this slurper for chaining
-
setUseHeader
Set whether the first row is a header row (default: true).- Parameters:
useHeader- true to treat the first row as headers- Returns:
- this slurper for chaining
-
setColumns
Set explicit column names, typically for CSV without a header row. When column names are supplied anduseHeaderis true, the first row is still consumed as a header row but the supplied names take precedence over the names it contains.- Parameters:
columns- the column names- Returns:
- this slurper for chaining
-
setColumns
Set explicit column names, typically for CSV without a header row. When column names are supplied anduseHeaderis true, the first row is still consumed as a header row but the supplied names take precedence over the names it contains.- Parameters:
columns- the column names- Returns:
- this slurper for chaining
-
parseText
Parse the content of the specified CSV text.- Parameters:
csv- the CSV text- Returns:
- a list of maps (one per row), keyed by column headers
-
parse
Parse CSV from a reader. When explicit column names have been supplied viasetColumns(String...), each row is returned as a map keyed by those names. Otherwise, whenuseHeaderis true (the default), maps are keyed by column headers from the first row. Otherwise, maps are keyed by generated column namesc1,c2, ...- Parameters:
reader- the reader of CSV- Returns:
- a list of maps (one per row)
-
parse
Parse CSV from a UTF-8 encoded input stream. The caller is responsible for closing the stream.- Parameters:
stream- the input stream of CSV- Returns:
- a list of maps (one per row)
-
parse
Parse CSV from an input stream decoded with the given charset. The caller is responsible for closing the stream.- Parameters:
stream- the input stream of CSVcharset- the charset used to decode the stream- Returns:
- a list of maps (one per row)
-
parse
Parse CSV from a UTF-8 encoded file.- Parameters:
file- the CSV file- Returns:
- a list of maps (one per row), keyed by column headers
- Throws:
IOException
-
parse
Parse CSV from a file decoded with the given charset.- Parameters:
file- the CSV filecharset- the charset used to decode the file- Returns:
- a list of maps (one per row), keyed by column headers
- Throws:
IOException
-
parse
Parse CSV from a UTF-8 encoded path.- Parameters:
path- the path to the CSV file- Returns:
- a list of maps (one per row), keyed by column headers
- Throws:
IOException
-
parse
Parse CSV from a path decoded with the given charset.- Parameters:
path- the path to the CSV filecharset- the charset used to decode the file- Returns:
- a list of maps (one per row), keyed by column headers
- Throws:
IOException
-
parseAs
Parse CSV into typed objects using Jackson databinding. Supports@JsonPropertyand@JsonFormatannotations for column mapping and type conversion.- Type Parameters:
T- the target type- Parameters:
type- the target typecsv- the CSV text- Returns:
- a list of typed objects
-
parseAs
Parse CSV from a reader into typed objects. When explicit column names have been supplied viasetColumns(String...), values are bound to properties of those names by position. Otherwise, whenuseHeaderis true (the default), values are bound by the column names in the header row. Otherwise, positional columns are derived from the target type's properties: component declaration order for records, alphabetical order for other classes. Use@JsonPropertyOrderon the type to set an explicit column order.- Type Parameters:
T- the target type- Parameters:
type- the target typereader- the reader of CSV- Returns:
- a list of typed objects
-
parseAs
Parse CSV from a UTF-8 encoded file into typed objects.- Type Parameters:
T- the target type- Parameters:
type- the target typefile- the CSV file- Returns:
- a list of typed objects
- Throws:
IOException
-
parseAs
Parse CSV from a file decoded with the given charset into typed objects.- Type Parameters:
T- the target type- Parameters:
type- the target typefile- the CSV filecharset- the charset used to decode the file- Returns:
- a list of typed objects
- Throws:
IOException
-
parseAs
Parse CSV from a UTF-8 encoded path into typed objects.- Type Parameters:
T- the target type- Parameters:
type- the target typepath- the path to the CSV file- Returns:
- a list of typed objects
- Throws:
IOException
-
parseAs
Parse CSV from a path decoded with the given charset into typed objects.- Type Parameters:
T- the target type- Parameters:
type- the target typepath- the path to the CSV filecharset- the charset used to decode the file- Returns:
- a list of typed objects
- Throws:
IOException
-