5 CSV 到 JSON 预处理

概述

在此预处理步骤中,可以将CSV file数据转换为 JSON格式。支持以下场景:

  • 监控项 (监控项原型)
  • 低级发现规则

配置

配置CSV转JSON预处理步骤:

  • 前往item/预处理配置中的预处理选项卡
  • 点击添加
  • 选择CSV转JSON选项

第一个参数允许设置自定义分隔符。请注意,如果CSV输入的首行以"Sep="开头且后接单个UTF-8字符,当第一个参数未设置时该字符将作为分隔符。若第一个参数未设置且未从"Sep="行获取分隔符,则默认使用逗号作为分隔符。

第二个可选参数允许设置引号符号。

若勾选包含标题行复选框,标题行数值将被解析为列名(详见标题行处理)。

若勾选自定义失败处理复选框,当预处理步骤失败时监控项不会变为不受支持状态。还可设置自定义错误处理选项:丢弃数值、设置指定值或设置指定错误消息。

Header 处理

CSV file 标题行可通过两种不同方式处理:

  • 若勾选 With header row 复选框 - 标题行值将被解析为列名。此时列名必须唯一且数据行不应包含比标题行更多的列;

  • 若未勾选 With header row 复选框 - 标题行将

    interpreted as data. Column names are generated automatically (1,2,3,4...)

CSV file 示例:

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