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 pierwszy wiersz danych wejściowych CSV zaczyna się od "Sep=" i po nim 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 wiersza "Sep=", jako separator zostanie użyty przecinek.

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

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

Jeśli zaznaczono pole wyboru Custom on fail, po nieudanym kroku przetwarzania wstępnego pozycja nie stanie się nieobsługiwana. Dodatkowo można ustawić niestandardowe opcje obsługi błędów: odrzucić wartość, ustawić określoną wartość lub ustawić określony komunikat 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"
   }
]