解码 JSON 字段编辑

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

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

decode_json_fields 处理器具有以下配置设置

fields
要解码的包含 JSON 字符串的字段。
process_array
(可选)一个布尔值,指定是否处理数组。默认值为 false
max_depth
(可选)最大解析深度。值为 1 将解码 fields 中指示的字段中的 JSON 对象,值为 2 还将解码嵌入在这些解析文档的字段中的对象。默认值为 1
target
(可选)将写入解码后的 JSON 的字段。默认情况下,解码后的 JSON 对象将替换从中读取的字符串字段。要将解码后的 JSON 字段合并到事件的根目录中,请使用空字符串(target: "")指定 target。请注意,null 值(target:)将被视为未设置该字段。
overwrite_keys
(可选)一个布尔值,指定是否用解码后的 JSON 对象中的键覆盖事件中的现有键。默认值为 false
expand_keys
(可选)一个布尔值,指定是否应递归地取消解码后的 JSON 中的键的点分隔,并将其扩展为分层对象结构。例如,{"a.b.c": 123} 将扩展为 {"a":{"b":{"c":123}}}
add_error_key
(可选)如果设置为 true 并且在解码 JSON 键时发生错误,则 error 字段将成为事件的一部分,并包含错误消息。如果设置为 false,则事件的字段中不会出现任何错误。默认值为 false
document_id
(可选)用作文档 ID 的 JSON 键。如果配置了此项,则该字段将从原始 JSON 文档中删除,并存储在 @metadata._id