6 Przetwarzanie wstępne CSV do JSON

Przegląd

W tym kroku przetwarzania wstępnego można przekonwertować dane pliku CSV do formatu JSON. Jest to obsługiwane w:

  • pozycjach (prototypach pozycji)
  • regułach wykrywania niskiego poziomu

Konfiguracja

Aby skonfigurować krok przetwarzania wstępnego CSV do JSON:

Pierwszy parametr umożliwia ustawienie niestandardowego separatora. Należy pamiętać, że jeśli pierwsza linia danych wejściowych CSV zaczyna się od "Sep=" i po niej występuje pojedynczy znak UTF-8, to ten znak zostanie użyty jako separator, jeśli pierwszy parametr nie zostanie ustawiony. Jeśli pierwszy parametr nie jest ustawiony i separator nie zostanie odczytany z linii "Sep=", jako separator zostanie użyty przecinek.

Drugi opcjonalny parametr umożliwia ustawienie znaku cudzysłowu.

Jeśli pole wyboru With header row jest zaznaczone, wartości wiersza nagłówka będą interpretowane jako nazwy kolumn (więcej informacji można znaleźć w sekcji Header processing).

Jeśli pole wyboru Custom on fail jest zaznaczone, pozycja nie stanie się niewspierana w przypadku nieudanego kroku przetwarzania wstępnego. Dodatkowo można ustawić niestandardowe opcje obsługi błędów: odrzucenie wartości, ustawienie określonej wartości lub ustawienie określonego komunikatu o błędzie.

Header processing

The CSV file header line can be processed in two different ways:

  • If the With header row checkbox is marked - header line values are interpreted as column names. In this case the column names must be unique and the data row should not contain more columns than the header row;
  • If the With header row checkbox is not marked - the header line is interpreted as data. Column names are generated automatically (1,2,3,4...)

CSV file example:

Nr,Item name,Key,Qty
1,active agent item,agent.hostname,33
"2","passive agent item","agent.version","44"
3,"active,passive agent items",agent.ping,55

A quotation character within a quoted field in the input must be escaped by preceding it with another quotation character.

Processing header line

JSON output when a header line is expected:

[
   {
      "Nr":"1",
      "Item name":"active agent item",
      "Key":"agent.hostname",
      "Qty":"33"
   },
   {
      "Nr":"2",
      "Item name":"passive agent item",
      "Key":"agent.version",
      "Qty":"44"
   },
   {
      "Nr":"3",
      "Item name":"active,passive agent items",
      "Key":"agent.ping",
      "Qty":"55"
   }
]

No header line processing

JSON output when a header line is not expected:

[
   {
      "1":"Nr",
      "2":"Item name",
      "3":"Key"
      "4":"Qty"
   },
   {
      "1":"1",
      "2":"active agent item",
      "3":"agent.hostname"
      "4":"33"
   },
   {
      "1":"2",
      "2":"passive agent item",
      "3":"agent.version"
      "4":"44"
   },
   {
      "1":"3",
      "2":"active,passive agent items",
      "3":"agent.ping"
      "4":"55"
   }
]