6 CSV 转换成 JSON 预处理

概述

在此预处理步骤中,可以将 CSV 文件数据转换为 JSON 格式。此功能支持用于:

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

配置

要配置 CSV 到 JSON 预处理步骤:

  • 转到监控项/发现规则配置中的“预处理”选项卡
  • 单击 添加
  • 选择 CSV 到 JSON 选项

第一个参数用于设置自定义分隔符。请注意,如果 CSV 输入的第一行以 "Sep=" 开头,后跟一个 UTF-8 单字符,那么在未设置第一个参数的情况下,将使用该字符作为分隔符。如果第一个参数未设置,且未从 "Sep=" 行中获取到分隔符,则使用逗号作为分隔符。

第二个可选参数用于设置引号符号。

如果选中 With header row 复选框,则表头行的值将被解释为列名(更多信息请参见表头处理)。

如果选中 Custom on fail 复选框,则在预处理步骤失败时,监控项不会变为不支持。此外,还可以设置自定义错误处理选项:丢弃该值、设置指定值或设置指定错误消息。

标题预处理

CSV文件标题行可以用两种不同的方式处理:

  • 如果勾选With header row - 标题行值被解释为列名。在这种情况下,列名必须是唯一的,数据行不应该包含比标题行更多的列;
  • 如果勾选 With header row - 标题行解释为数据。自动生成列名(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"
   }
]