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

Обзор

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

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

Настройка

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

  1. Перейдите на вкладку Предварительная обработка в настройках элемента данных/правила обнаружения.
  2. Нажмите Добавить.
  3. Выберите вариант 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"
   }
]