Путь

Выражение пути представляет собой последовательность сегментов, разделенных точками, которые определяют местоположение значения внутри объекта. Ведущая точка означает, что путь указывает на событие. Ведущий знак процента означает, что путь указывает на метаданные события.

Синтаксис

Список принятых обозначений

В данном разделе при описании выражений приняты следующие обозначения:

  • Элементы выражений разделены тильдой.

  • Круглые скобки служат для группировки элементов выражения.

  • Если в выражении используется литерал скобок или других символов, они заключаются в кавычки: "(". "NEWLINE" обозначает перевод строки.

  • Квантификаторы после элементов и групп обозначают количество повторений:

    • ? — элемент необязателен, может отсутствовать в выражении;

    • + — элемент обязателен и может повторяться в выражении несколько раз;

    • * — элемент может отсутствовать или повторяться несколько раз.

root_path ~ path_segments
Элемент Описание

root_path

Корень пути, представленный одним из следующих символов:

  • Символ . представляет корень события.

  • Символ % представляет корень метаданных события.

path_segments

Сегменты вложенного пути. Каждый сегмент должен быть отделен точкой в начале и может содержать латинские буквы в любом регистре, цифры и подчеркивания. Сегменты, содержащие символы вне этого диапазона, должны быть заключены в кавычки.

Используйте VRL-песочницу, чтобы проверить работу программы.

Примеры путей

Пример корневого пути события

Событие Vector
{
  "message": "Hello, World!"
}
Исходный код
.
Результат
{
  "message": "Hello, World!"
}

Пример корневого пути метаданных

Событие Vector
{
  "message": "Hello, World!"
}
Исходный код
%
Результат
{}

Пример пути верхнего уровня

Событие Vector
{
  "message": "Hello, World!"
}
Исходный код
.message
Результат
Hello, World!

Пример вложенного пути

Событие Vector
{
  "parent": {
    "child": "Hello, World!"
  }
}
Исходный код
.parent.child
Результат
Hello, World!

Пример объединения вложенных путей

Событие Vector
{
  "grand_parent": {
    "parent2": {
      "child": "Hello, World!"
    }
  }
}
Исходный код
.grand_parent.parent1.child || .grand_parent.parent2.child
Результат
Hello, World!

Пример пути в кавычках

Событие Vector
{
  "parent.key.with.special characters": {
    "child": "Hello, World!"
  }
}
Исходный код
."parent.key.with.special characters".child
Результат
Hello, World!

Пример пути к первому элементу массива

Событие Vector
{
  "массив": [
    "первый",
    "второй"
  ]
}
Исходный код
."массив"[0]
Результат
"первый"

Пример пути ко второму элементу массива

Событие Vector
{
  "массив": [
    "первый",
    "второй"
  ]
}
Исходный код
."массив"[1]
Результат
"второй"

Была ли полезна эта страница?

Обратная связь