5. Предобработка CSV в JSON

Обзор

В этом шаге предварительной обработки имеется возможность преобразования данных CSV файла в формат JSON. Поддерживается в:

  • элементах данных (прототипах элементов данных)
  • правилах низкоуровневого обнаружения

Настройка

Для настройки шага предварительной обработки CSV в JSON:

Первый параметр позволяет задать пользовательский разделитель. Обратите внимание, если первая строка входящих данных CSV начинается с «Sep=» и затем следует один UTF-8 символ, тогда этот символ будет использоваться в качестве разделителя в случае, если первый параметр не задан. Если первый параметр не задан и разделитель не извлекается из строки «Sep=», то в качестве разделителя будет использоваться запятая.

Второй опциональный параметр позволяет задать символ кавычек.

Если отмечен флажок Со строкой заголовка, значения строки заголовка будут интерпретированы как имена столбцов (смотрите Обработка заголовка для получения более подробной информации).

Если отмечен флажок Другое при ошибке, элемент данных не станет неподдерживаемым в случае ошибки на шаге предварительной обработки. Кроме того, можно задать пользовательскую обработку ошибок: отбросить значение, задать нужное значение или задать нужное сообщение об ошибке.

Обработка заголовка

Строка заголовка CSV файла может обрабатываться двумя разными способами:

  • Если флажок Со строкой заголовка отмечен — значения строки заголовка интерпретируются как имена столбцов. В этом случае имена столбцов должны быть уникальны и строки с данными не должны содержать больше столбцов, чем строка заголовка;
  • Если флажок Со строкой заголовка не отмечен — строка заголовка интерпретируется как данные. Имена столбцов генерируются автоматически (1,2,3,4...)

Пример CSV файла:

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

Знак кавычек внутри заключенного в кавычки поля во входящих данных должен быть экранирован при помощи другого символа кавычек.

Обработка строки заголовка

Вывод JSON, когда ожидается строка заголовка:

[
          {
             "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"
          }
       ]

Обработка без наличия строки заголовка

Вывод JSON, когда не ожидается строка заголовка:

[
          {
             "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"
          }
       ]