Loading

Decode JSON fields

The decode_json_fields processor decodes fields containing JSON strings and replaces the strings with valid JSON objects.

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

Elastic Agent processors execute before ingest pipelines, which means that your processor configurations cannot refer to fields that are created by ingest pipelines or Logstash. For more limitations, refer to What are some limitations of using processors?

Name Required Default Description
fields Yes Fields containing JSON strings to decode.
process_array No false Whether to process arrays.
max_depth No 1 Maximum parsing depth. A value of 1 decodes the JSON objects in fields indicated in fields. A value of 2 also decodes the objects embedded in the fields of these parsed documents.
target No Field under which the decoded JSON will be written. By default, the decoded JSON object replaces the string field from which it was read. To merge the decoded JSON fields into the root of the event, specify target with an empty string (target: ""). Note that the null value (target:) is treated as if the field was not set.
overwrite_keys No false Whether existing keys in the event are overwritten by keys from the decoded JSON object.
expand_keys No Whether keys in the decoded JSON should be recursively de-dotted and expanded into a hierarchical object structure. For example, {"a.b.c": 123} would be expanded into {"a":{"b":{"c":123}}}.
add_error_key No false If true and an error occurs while decoding JSON keys, the error field will become a part of the event with the error message. If false, there will not be any error in the event’s field.
document_id No JSON key that’s used as the document ID. If configured, the field will be removed from the original JSON document and stored in @metadata._id.