Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Ingest pipelines ›Ingest processor reference

JSON процессор

Преобразует строку JSON в структурированный объект JSON.

Таблица 30. Параметры Json

Имя Обязательно По умолчанию Описание

field

да

-

Поле для разбора.

target_field

нет

field

Поле, в которое будет записан преобразованный структурированный объект. Любое существующее содержимое в этом поле будет перезаписано.

add_to_root

нет

false

Флаг, который заставляет добавленный разобранный JSON в корне документа. target_field не должен быть установлен, когда выбран этот параметр.

add_to_root_conflict_strategy

нет

replace

При установке в replace, корневые поля, конфликтующие с полями из разобранного JSON, будут перезаписаны. При установке в merge, конфликтующие поля будут объединены. Применимо только в том случае, если add_to_root установлено в true.

allow_duplicate_keys

нет

false

Если установлено в true, парсер JSON не будет завершаться ошибкой, если JSON содержит дублирующие ключи. Вместо этого, последнее встреченное значение для любого дублирующего ключа будет сохранено.

strict_json_parsing

нет

true

При установке в true, парсер JSON будет строго анализировать значение поля. При установке в false, парсер JSON будет более снисходительным, но также с большей вероятностью будет опускать части значения поля. Например, если strict_json_parsing установлено в true, а значение поля — 123 "foo", то процессор сгенерирует IllegalArgumentException. Но если strict_json_parsing установлено в false, то значение поля будет обработано как 123.

description

нет

-

Описание процессора. Полезно для описания цели процессора или его конфигурации.

if

нет

-

Условное выполнение процессора. См. Условное выполнение процессора.

ignore_failure

нет

false

Игнорировать ошибки для процессора. См. Обработка ошибок конвейера.

on_failure

нет

-

Обработка ошибок для процессора. См. Обработка ошибок конвейера.

tag

нет

-

Идентификатор процессора. Полезно для отладки и метрик.

Будут обработаны все типы, поддерживаемые JSON (null, boolean, number, array, object, string).

Предположим, что вы предоставляете такую конфигурацию процессора json:

{
  "json" : {
    "field" : "string_source",
    "target_field" : "json_target"
  }
}

Если обрабатывается следующий документ:

{
  "string_source": "{\"foo\": 2000}"
}

после того, как процессор json подействует на него, он будет выглядеть так:

{
  "string_source": "{\"foo\": 2000}",
  "json_target": {
    "foo": 2000
  }
}

Если предоставлена следующая конфигурация, опуская необязательное значение target_field:

{
  "json" : {
    "field" : "source_and_target"
  }
}

то после того, как процессор json подействует на этот документ:

{
  "source_and_target": "{\"foo\": 2000}"
}

он будет выглядеть так:

{
  "source_and_target": {
    "foo": 2000
  }
}

Это иллюстрирует, что, если явно не указано в конфигурации процессора, поле target_field — это то же поле, что и в обязательной конфигурации field.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/json-processor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API