Zum Inhalt

CSV-Datei strukturiert auslesen

Der Service Task „CSV-Datei strukturiert auslesen“ wandelt eine CSV-Datei automatisiert in ein Array von JSON-Objekten um. Optional können Spaltennamen über ein Mapping angepasst und Datentypen wie float, date oder boolean transformiert werden.

Input-Parameter

Die folgenden Felder werden als Eingabe für den Task benötigt:

{
  "csv_file": {
    "referenceId": "string",
    "filename": "datei.csv"
  },
  "config": {
    "delimiter": ";"
  },
  "column_mapping": {
    "Betrag": "betrag",
    "Valutadatum": "valutadatum"
  },
  "field_mapping": {
    "betrag": { "type": "float" },
    "valutadatum": { "type": "date", "format": "dd.MM.yyyy" }
  }
}

Erläuterung:

  • csv_file: Referenz zur hochgeladenen CSV-Datei (Datei muss als fileReference vorliegen).
  • config: Optionales Konfigurationsobjekt für den CSV-Import (unterstützte Optionen: delimiter, header, skipEmptyLines, dynamicTyping).
  • column_mapping: Optionales Objekt zur Umbenennung der CSV-Header. Schlüssel = ursprünglicher Spaltenname, Wert = Zielname im JSON.
  • field_mapping: Optionales Objekt zur Typkonvertierung einzelner Felder. Mögliche Typen: string, int, float, date, boolean. Für Datumsfelder kann zusätzlich ein format angegeben werden (z. B. dd.MM.yyyy).

Output

Der Task gibt die geparsten Datensätze als JSON zurück:

{
  "status": 200,
  "records": [
    {
      "betrag": 177.5,
      "valutadatum": "2025-03-07"
    },
    ...
  ],
  "total": 42
}

Erläuterung:

  • status: HTTP-Statuscode.
  • records: Array mit den geparsten JSON-Objekten.
  • total: Anzahl der Zeilen (Datensätze).

JSONata-Beispiele

// Beispiel: Betrag und Valutadatum dynamisch aus Prozessdaten
{
  "column_mapping": {
    "Betrag": "betrag",
    "Valutadatum": "valutadatum"
  },
  "field_mapping": {
    "betrag": { "type": "float" },
    "valutadatum": { "type": "date", "format": "dd.MM.yyyy" }
  }
}

Hinweise

  • Nur csv_file ist verpflichtend; config, column_mapping und field_mapping sind optional.
  • Leere Zeilen werden automatisch übersprungen.
  • Datumsfelder werden bei korrektem Format in YYYY-MM-DD (ISO) zurückgegeben.
  • Zahlen mit deutschem Komma (177,50) werden korrekt erkannt.

Tipp

Nutze den JSONata Playground, um Ausdrücke zu testen und zu validieren.