6 CSV 转 JSON 预处理

概述

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

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

配置

配置 CSV 到 JSON 预处理步骤:

  • 进入 item/预处理 配置中的预处理选项卡
  • 点击 添加
  • 选择 CSV 到 JSON 选项

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

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

如果勾选了 带有标题行 复选框,则标题行的值将被解释为列名(更多信息请参见 标题处理)。

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

Header 处理

CSV file 的首行可以按两种不同方式处理:

  • 如果选中 包含标题行 复选框 - 首行值将被解释为列名。在这种情况下,列名必须唯一,并且数据行不应包含比标题行更多的列。
  • 如果未选中 包含标题行 复选框 - 首行将被解释为数据。列名将自动生成(1、2、3、4...)。

CSV file 示例:

Nr,监控项 name,Key,Qty
       1,active agent 监控项,agent.hostname,33
       "2","passive agent 监控项","agent.version","44"
       3,"active,passive agent 监控项",agent.ping,55

输入中引用字段内的引号字符必须通过在其前面添加另一个引号字符进行转义。

处理标题行

当预期有标题行时的 JSON 输出:

[
          {
             "Nr":"1",
             "监控项 name":"active agent 监控项",
             "Key":"agent.hostname",
             "Qty":"33"
          },
          {
             "Nr":"2",
             "监控项 name":"passive agent 监控项",
             "Key":"agent.version",
             "Qty":"44"
          },
          {
             "Nr":"3",
             "监控项 name":"active,passive agent 监控项",
             "Key":"agent.ping",
             "Qty":"55"
          }
       ]

No header line processing

JSON output when a header line is not expected:

{.json}
       [
          {
             "1":"Nr",
             "2":"监控项 name",
             "3":"Key",
             "4":"Qty"
          },
          {
             "1":"1",
             "2":"active agent 监控项",
             "3":"agent.hostname",
             "4":"33"
          },
          {
             "1":"2",
             "2":"passive agent 监控项",
             "3":"agent.version",
             "4":"44"
          },
          {
             "1":"3",
             "2":"active,passive agent 监控项",
             "3":"agent.ping",
             "4":"55"
          }
       ]