解码 JSON 字段

编辑

decode_json_fields 处理器解码包含 JSON 字符串的字段,并将这些字符串替换为有效的 JSON 对象。

示例

编辑
  - decode_json_fields:
      fields: ["field1", "field2", ...]
      process_array: false
      max_depth: 1
      target: ""
      overwrite_keys: false
      add_error_key: true

配置设置

编辑

Elastic Agent 处理器在摄取管道之前执行,这意味着您的处理器配置不能引用由摄取管道或 Logstash 创建的字段。有关更多限制,请参阅使用处理器有哪些限制?

名称 必需 默认值 描述

fields

包含要解码的 JSON 字符串的字段。

process_array

false

是否处理数组。

max_depth

1

最大解析深度。值为 1 会解码 fields 中指示的字段中的 JSON 对象。值为 2 还会解码这些已解析文档的字段中嵌入的对象。

target

解码后的 JSON 将写入的字段。默认情况下,解码后的 JSON 对象会替换从中读取的字符串字段。要将解码后的 JSON 字段合并到事件的根目录,请指定 target 为空字符串 (target: "")。请注意,null 值 (target:) 将被视为该字段未设置。

overwrite_keys

false

是否用解码后的 JSON 对象中的键覆盖事件中已存在的键。

expand_keys

是否应递归地取消点化解码后的 JSON 中的键,并将其扩展为分层对象结构。例如,{"a.b.c": 123} 将被扩展为 {"a":{"b":{"c":123}}}

add_error_key

false

如果为 true 并且在解码 JSON 键时发生错误,则 error 字段将成为包含错误消息的事件的一部分。如果为 false,则事件的字段中不会有任何错误。

document_id

用作文档 ID 的 JSON 键。如果配置了此项,该字段将从原始 JSON 文档中删除并存储在 @metadata._id 中。