Документация Databird

Часто используемые функции

⚠️ В данном разделе рассмотрена лишь часть функций языка JSONata. С полным перечнем доступных функций можно ознакомиться в официальной документации.

🧩 Официальная документация языка JSONata на английском языке: http://docs.jsonata.org/

Строковые функции (Boolean)

Функция Назначение
$string() Преобразует аргумент в строку
$substringBefore() Возвращает подстроку перед первым вхождением заданной последовательности символов
$substringAfter() Возвращает подстроку после первого вхождением заданной последовательности символов
$uppercase() Возвращает строку с символами, преобразованными в верхний регистр
$lowercase() Возвращает строку с символами, преобразованными в нижний регистр
$trim() Удаляет двойные пробелы, \t и \n из строки
$contains() Проверяет содержится ли в строке подстрока
$replace() Находит вхождения шаблона внутри строки и заменяет их на заданное выражение

Функция $string() в JSONata

Примеры:

  1. $string(5) ⇒ "5"
  2. [1..5].$string() ⇒ ["1", "2", "3", "4", "5"]

Функция $substringBefore() в JSONata

Примеры:

  1. $substringBefore("Hello World", " ") ⇒ "Hello"
  2. $substringBefore("Hello World", "ld") ⇒ "Hello Wor"

Функция $substringAfter() в JSONata

Примеры:

  1. $substringAfter("Hello World", " ") ⇒ "World"
  2. $substringAfter("Hello World", "l") ⇒ "lo World"

Функция $uppercase() в JSONata

Примеры:

  1. $uppercase("Hello World")⇒ "HELLO WORLD"

Функция $lowercase() в JSONata

Примеры:

  1. $lowercase("Hello World") ⇒ "hello world"

Функция $trim() в JSONata

Примеры:

  1. $trim(" Hello \n World ") ⇒ "Hello World"
  2. $trim("Hello World") ⇒ "Hello World"

Функция $contains() в JSONata

Примеры:

  1. $contains("abracadabra", "bra") ⇒ true
  2. $contains("Hello World", /wo/) ⇒ false
  3. $contains("Hello World", /wo/i) ⇒ true

Функция $replace() в JSONata

Примеры:

  1. $replace("John Smith and John Jones", "John", "Mr")"Mr Smith and Mr Jones"
  2. $replace("John Smith and John Jones", "John", "Mr", 1)"Mr Smith and John Jones"

🧩 Официальная документация языка JSONata по строковым функциям на английском языке: http://docs.jsonata.org/string-functions

Числовые функции (Numeric)

Функция Назначение
$number() Преобразует параметр аргумент в число
$floor() Округление числа в меньшую сторону
$ceil() Округление до ближайшего целого числа
$round() Округляет до определенного количества знаков после запятой (точки).

Функция $number() в JSONata

Примеры:

  1. $number("5") ⇒ 5
  2. ["1", "2", "3", "4", "5"].$number() ⇒ [1, 2, 3, 4, 5]

Функция $floor() в JSONata

Примеры:

  1. $floor(5) ⇒ 5
  2. $floor(5.3) ⇒ 5
  3. $floor(5.8) ⇒ 5
  4. $floor(-5.3) ⇒ 6

Функция $ceil() в JSONata

Примеры:

  1. $ceil(5) ⇒ 5
  2. $ceil(5.3) ⇒ 6
  3. $ceil(5.8) ⇒ 6
  4. $ceil(-5.3) ⇒ 5

Функция $round() в JSONata

Примеры:

  1. $round(123.456) ⇒ 123
  2. $round(123.456, 2) ⇒ 123.46
  3. $round(123.456, -1) ⇒ 120
  4. $round(123.456, -2) ⇒ 100
  5. $round(11.5) ⇒ 12
  6. $round(12.5) ⇒ 12
  7. $round(125, -1) ⇒ 120

🧩 Официальная документация языка JSONata по числовым функциям на английском языке: http://docs.jsonata.org/string-functions

Логические функции (Boolean)

Функция Назначение
$boolean() Преобразует аргумент в логическое значение
$not() Возвращает логическое значение НЕ, относящееся к аргументу, то есть инвертирует его
$exists() Проверяет имеет ли выражение значение или соответствует ли чему-то

Функция $boolean() **в JSONata

Примеры:

  1. $boolean(null)false
  2. $boolean(1)true
  3. $boolean(0)false
  4. $boolean("Hello")true
  5. $boolean("")false

Функция $not() **в JSONata

Примеры:

  1. $**not**(true)false
  2. $**not**(false)true

🧩 Официальная документация языка JSONata по функциям логического типа данных на английском языке: http://docs.jsonata.org/boolean-functions

Добавленные функции Databird

$getCategory(categoryId) - возвращает название по ID категории, соответствующее таблице категорий в конфигурации XML фида. Используется для мэппинга файлов типа YML с таблицей категорий внутри файла.

$getProduсtId( attribute, value) - возвращает значение атрибута productId товара в каталоге атрибутом attribute равным значению value. Используется для привязки записи загружаемого фида к уже загруженными записям с каталоге.

$getProposal(feedName, productId) - возвращает атрибуты предложения c ID товара равного productId, находящегося в источнике с именем feedName.

$getDictValue(dictionaryName, selectorField, selectorValue, valueField) - возвращает значение valueField словаря dictionaryName, в котором поле selectorField равно значению selectorValue. Используется для размерных таблиц и иных преобразований.

$getDictionary(dictionaryName) - возвращает массив values словаря по имени dictionaryName.

$F.feedName - возвращает запись с атрибутами конкретного импорта, подключенного в фильтрах. Используется для получения значения атрибутов конкретного подключения.

$A.atributeName - возвращает значение атрибута atributeName данного товара. Важно, чтобы приоритет текущего правила был численно выше, чем у правила, где задается атрибут atributeName. Данная функция позволяет легко получить значение атрибута, если для его получения было использовано сложное громоздкое правило.

$searchDictRecord(dictionaryName, columnName, searchString).columnName