6. Предобработка CSV в JSON
Обзор
В этом шаге предварительной обработки имеется возможность преобразования данных CSV файла в формат JSON. Поддерживается в:
- элементах данных (прототипах элементов данных)
- правилах низкоуровневого обнаружения
Конфигурация
Чтобы настроить шаг предварительной обработки CSV в JSON:
- Перейдите на вкладку Предварительная обработка в конфигурации элемента данных/правила обнаружения
- Нажмите Добавить
- Выберите опцию CSV to JSON

Первый параметр позволяет задать пользовательский разделитель. Обратите внимание: если первая строка входных данных CSV начинается с "Sep=" и за ней следует один символ UTF-8, то этот символ будет использоваться в качестве разделителя, если первый параметр не задан. Если первый параметр не задан и разделитель не был получен из строки "Sep=", то в качестве разделителя используется запятая.
Второй необязательный параметр позволяет задать символ кавычек.
Если установлен флажок With header row, значения строки заголовка будут интерпретироваться как имена столбцов (подробнее см. Обработка заголовка).
Если установлен флажок Custom on fail, элемент данных не станет неподдерживаемым в случае сбоя шага предварительной обработки. Кроме того, можно задать пользовательские параметры обработки ошибок: отбросить значение, установить указанное значение или установить указанное сообщение об ошибке.
Обработка заголовка
Строка заголовка 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"
}
]