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