Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Ingest pipelines ›Ingest processor reference

JSON процессор

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

Таблица 27. Параметры 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 содержит дублирующиеся ключи. Вместо этого последняя встреченная в таком случае запись для любого дублирующегося ключа будет использована.

description

нет

-

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

if

нет

-

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

ignore_failure

нет

false

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

on_failure

нет

-

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

tag

нет

-

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

Все поддерживаемые типы JSON будут распарсены (null, boolean, число, массив, объект, строка).

Предположим, что вы предоставляете такую конфигурацию процессора 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/7.17/json-processor.html

Spec-Zone.ru

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