Package groovy.csv

# Class CsvSlurper

java.lang.Object
groovy.csv.CsvSlurper

@Incubating public class CsvSlurper extends Object
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

  Constructors
  Constructor
  Description
  `CsvSlurper()`
  Creates a slurper that uses comma-separated columns, double quotes, and treats the first row as headers.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<Map<String,String>>`
  `parse(File file)`
  Parse CSV from a file.
  `List<Map<String,String>>`
  `parse(InputStream stream)`
  Parse CSV from an input stream.
  `List<Map<String,String>>`
  `parse(Reader reader)`
  Parse CSV from a reader.
  `List<Map<String,String>>`
  `parse(Path path)`
  Parse CSV from a path.
  `<T> List<T>`
  `parseAs(Class<T> type, File file)`
  Parse CSV from a file into typed objects.
  `<T> List<T>`
  `parseAs(Class<T> type, Reader reader)`
  Parse CSV from a reader into typed objects.
  `<T> List<T>`
  `parseAs(Class<T> type, String csv)`
  Parse CSV into typed objects using Jackson databinding.
  `<T> List<T>`
  `parseAs(Class<T> type, Path path)`
  Parse CSV from a path into typed objects.
  `List<Map<String,String>>`
  `parseText(String csv)`
  Parse the content of the specified CSV text.
  `CsvSlurper`
  `setQuoteChar(char quoteChar)`
  Set the quote character (default: double-quote).
  `CsvSlurper`
  `setSeparator(char separator)`
  Set the column separator character (default: comma).
  `CsvSlurper`
  `setUseHeader(boolean useHeader)`
  Set whether the first row is a header row (default: true).

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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

    public CsvSlurper setSeparator(char separator)
    Set the column separator character (default: comma).
    Parameters:
      `separator` - the separator character
    Returns:
      this slurper for chaining

  - ### setQuoteChar

    public CsvSlurper setQuoteChar(char quoteChar)
    Set the quote character (default: double-quote).
    Parameters:
      `quoteChar` - the quote character
    Returns:
      this slurper for chaining

  - ### setUseHeader

    public CsvSlurper setUseHeader(boolean useHeader)
    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

  - ### parseText

    public List<Map<String,String>> parseText(String csv)
    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

    public List<Map<String,String>> parse(Reader reader)
    Parse CSV from a reader. When `useHeader` is true (the default), each row is returned as a map keyed by column headers from the first row. When `useHeader` is false, maps are keyed by auto-generated column names.
    Parameters:
      `reader` - the reader of CSV
    Returns:
      a list of maps (one per row)

  - ### parse

    public List<Map<String,String>> parse(InputStream stream)
    Parse CSV from an 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

    public List<Map<String,String>> parse(File file) throws IOException
    Parse CSV from a file.
    Parameters:
      `file` - the CSV file
    Returns:
      a list of maps (one per row), keyed by column headers
    Throws:
      `IOException`

  - ### parse

    public List<Map<String,String>> parse(Path path) throws IOException
    Parse CSV from a path.
    Parameters:
      `path` - the path to the CSV file
    Returns:
      a list of maps (one per row), keyed by column headers
    Throws:
      `IOException`

  - ### parseAs

    public <T> List<T> parseAs(Class<T> type, String csv)
    Parse CSV into typed objects using Jackson databinding. Supports `@JsonProperty` and `@JsonFormat` annotations for column mapping and type conversion.
    Type Parameters:
      `T` - the target type
    Parameters:
      `type` - the target type
      `csv` - the CSV text
    Returns:
      a list of typed objects

  - ### parseAs

    public <T> List<T> parseAs(Class<T> type, Reader reader)
    Parse CSV from a reader into typed objects.
    Type Parameters:
      `T` - the target type
    Parameters:
      `type` - the target type
      `reader` - the reader of CSV
    Returns:
      a list of typed objects

  - ### parseAs

    public <T> List<T> parseAs(Class<T> type, File file) throws IOException
    Parse CSV from a file into typed objects.
    Type Parameters:
      `T` - the target type
    Parameters:
      `type` - the target type
      `file` - the CSV file
    Returns:
      a list of typed objects
    Throws:
      `IOException`

  - ### parseAs

    public <T> List<T> parseAs(Class<T> type, Path path) throws IOException
    Parse CSV from a path into typed objects.
    Type Parameters:
      `T` - the target type
    Parameters:
      `type` - the target type
      `path` - the path to the CSV file
    Returns:
      a list of typed objects
    Throws:
      `IOException`