Часто используемые функции
⚠️ В данном разделе рассмотрена лишь часть функций языка JSONata. С полным перечнем доступных функций можно ознакомиться в официальной документации.
🧩 Официальная документация языка JSONata на английском языке: http://docs.jsonata.org/
Строковые функции (Boolean)
| Функция | Назначение |
|---|---|
$string() |
Преобразует аргумент в строку |
$substringBefore() |
Возвращает подстроку перед первым вхождением заданной последовательности символов |
$substringAfter() |
Возвращает подстроку после первого вхождением заданной последовательности символов |
$uppercase() |
Возвращает строку с символами, преобразованными в верхний регистр |
$lowercase() |
Возвращает строку с символами, преобразованными в нижний регистр |
$trim() |
Удаляет двойные пробелы, \t и \n из строки |
$contains() |
Проверяет содержится ли в строке подстрока |
$replace() |
Находит вхождения шаблона внутри строки и заменяет их на заданное выражение |
Функция $string() в JSONata
Примеры:
$string(5)⇒"5"[1..5].$string()⇒["1", "2", "3", "4", "5"]
Функция $substringBefore() в JSONata
Примеры:
$substringBefore("Hello World", " ")⇒"Hello"$substringBefore("Hello World", "ld")⇒"Hello Wor"
Функция $substringAfter() в JSONata
Примеры:
$substringAfter("Hello World", " ")⇒"World"$substringAfter("Hello World", "l")⇒"lo World"
Функция $uppercase() в JSONata
Примеры:
$uppercase("Hello World")⇒"HELLO WORLD"
Функция $lowercase() в JSONata
Примеры:
$lowercase("Hello World")⇒"hello world"
Функция $trim() в JSONata
Примеры:
$trim(" Hello \n World ")⇒"Hello World"$trim("Hello World")⇒"Hello World"
Функция $contains() в JSONata
Примеры:
$contains("abracadabra", "bra")⇒true$contains("Hello World", /wo/)⇒false$contains("Hello World", /wo/i)⇒true
Функция $replace() в JSONata
Примеры:
$replace("John Smith and John Jones", "John", "Mr")⇒"Mr Smith and Mr Jones"$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
Примеры:
$number("5")⇒ 5["1", "2", "3", "4", "5"].$number()⇒[1, 2, 3, 4, 5]
Функция $floor() в JSONata
Примеры:
$floor(5)⇒ 5$floor(5.3)⇒ 5$floor(5.8)⇒ 5$floor(-5.3)⇒ 6
Функция $ceil() в JSONata
Примеры:
$ceil(5)⇒ 5$ceil(5.3)⇒ 6$ceil(5.8)⇒ 6$ceil(-5.3)⇒ 5
Функция $round() в JSONata
Примеры:
$round(123.456)⇒123$round(123.456, 2)⇒123.46$round(123.456, -1)⇒120$round(123.456, -2)⇒100$round(11.5)⇒12$round(12.5)⇒12$round(125, -1)⇒120
🧩 Официальная документация языка JSONata по числовым функциям на английском языке: http://docs.jsonata.org/string-functions
Логические функции (Boolean)
| Функция | Назначение |
|---|---|
$boolean() |
Преобразует аргумент в логическое значение |
$not() |
Возвращает логическое значение НЕ, относящееся к аргументу, то есть инвертирует его |
$exists() |
Проверяет имеет ли выражение значение или соответствует ли чему-то |
Функция $boolean() ****в JSONata
Примеры:
$boolean(null)⇒false$boolean(1)⇒true$boolean(0)⇒false$boolean("Hello")⇒true$boolean("")⇒false
Функция $not() ****в JSONata
Примеры:
$**not**(true)⇒false$**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. Данная функция позволяет легко получить значение атрибута, если для его получения было использовано сложное громоздкое правило.
getMedia($VALUE) – возвращает массив ссылок на файлы из хранилища медиа-контента, имена которых начинаются с переданной в параметре подстроки.
$searchDictRecord(dictionaryName, columnName, searchString).columnName - ищет вхождение подстроки searchString в столбце columnName словаря dictionaryName, чтобы вернуть значение из столбца columnName для той же строки (при совпадении). Позволяет вычленять категории или ключевые слова из описаний/названий товаров.