Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

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