| Оператор | Обозначение | Назначение |
|---|---|---|
| Равно | X = Y |
Проверяет равны ли значения |
| Не равно | X != Y |
Проверяет значения на неравенство друг-другу |
| Больше | X > Y |
Проверяет действительно ли левое значение больше правого |
| Меньше | X < Y |
Проверяет действительно ли левое значение меньше правого |
| Больше или равно | X >= Y |
Проверяет действительно ли левое значение больше правого или равно ему |
| Меньше или равно | X <= Y |
Проверяет действительно ли левое значение меньше правого или равно ему |
| Включение | X in Y |
Проверяет включает ли правый элемент в себя левый |
Подробнее о каждом операторе сравнения:
= (Равно) и != (Не равно) в JSONataОператор равенства (=) возвращает логическое значение true, если оба операнда одинаковы (тип и значение). Массивы и объекты проверяются на глубокое равенство. Массивы должны иметь одинаковые значения в одном и том же порядке. Объекты должны иметь одинаковые пары ключ/значение (порядок не имеет значения). В противном случае оператор возвращает логическое значение false.
Оператор неравенства (!=) возвращает логическое значение false, если оба операнда одинаковы (тип и значение, глубокое равенство). В противном случае он возвращает значение true.
Примеры:
5 = 5 ⇒ true[1, 2, 3] = [1, 2, 3, 4] ⇒ false10 != 10 ⇒ false“Hello” != “world” ⇒ true🧩 Официальная документация языка JSONata по = (равно) и != (не равно) на английском языке: http://docs.jsonata.org/comparison-operators#-equals
> (Больше) и < (Меньше) в JSONataОператор «больше, чем» (>) возвращает логическое значение true, если левое значение численно больше, чем правое. В противном случае оператор возвращает значение false.
Оператор «меньше, чем» (<) возвращает логическое значение true, если левое значение численно меньше, чем правое. В противном случае оператор возвращает значение false.
Примеры:
5 < 5.5 ⇒ true6 < -6 ⇒ false13 > 18 ⇒ false1.2345 > 1.23 ⇒ true🧩 Официальная документация языка JSONata по > (больше) и < (меньше) на английском языке: http://docs.jsonata.org/comparison-operators#-greater-than
>= (Больше или равно) и <= (Меньше или равно) в JSONataОператор «больше или равно» (>=) возвращает логическое значение true, если левое значение численно больше или равно правому. В противном случае оператор возвращает значение false.
Оператор «меньше или равно» (<=) возвращает логическое значение true, если левое значение численно меньше или равно правому. В противном случае оператор возвращает значение false.
Примеры:
141 <= 141 ⇒ true5 <= 5.005 ⇒ false45.678 >= 45.67 ⇒ true24 >= 25 ⇒ false🧩 Официальная документация языка JSONata по >= (больше или равно) и <= (меньше или равно) на английском языке: **http://docs.jsonata.org/comparison-operators#-greater-than-or-equals
in (Включение) в JSONataОператор включения массива/последовательности (in) возвращает логическое значение true, если левое значение включено в массив значений стоящий справа. В противном случае оператор возвращает значение false. Если правый элемент является единственным значением, то он обрабатывается как одноэлементный массив.
Примеры:
24 in [21, 22, 23, 24, 25] ⇒ true[21, 25] in [21, 22, 23, 24, 25] ⇒ false[21, 22] in [21, 22, 23, 24, 25] ⇒ true“hi” in “hihello” ⇒ false“hi” in “hi” ⇒ true“hi” in [“hi”, “hello”] ⇒ true🧩 Официальная документация языка JSONata по in (включение) на английском языке: http://docs.jsonata.org/comparison-operators#in-inclusion
| Оператор | Обозначение | Назначение |
|---|---|---|
| Логическое И | X and Y |
Проверяет являются ли оба значения истиной |
| Логическое ИЛИ | X or Y |
Проверяет является ли хотя бы одно значение истиной |
Подробнее о каждом логическом операторе:
and (логическое И) в JSONataОператор «логическое И» (and) возвращает логическое значение true, если оба операнда принимают значение true, в иных случаях возвращает false. Если один или оба операнда не являются логическим типом, то сначала они преобразуются в логическое значение, используя правила функции $boolean.
Примеры:
true and true ⇒ truetrue and false and true ⇒ false“hi” = “hi” and 14 <= 15 ⇒ true10 and [true, true, true] ⇒ truetrue and $not(16 = 16) ⇒ false🧩 Официальная документация языка JSONata по and (логическое И) на английском языке: http://docs.jsonata.org/boolean-operators#and-boolean-and
or (логическое ИЛИ) в JSONataОператор «логическое ИЛИ» (or) возвращает логическое значение true, если хотя бы один из операндов принимает значение true. Если один или оба операнда не являются логическим типом, то сначала они преобразуются в логическое значение, используя правила функции $boolean.
Примеры:
false or false or true ⇒ true1 != 1 or 13 < 0 ⇒ false“hi” or 13 - 13 ⇒ true0 or 0 ⇒ false🧩 Официальная документация языка JSONata по or (логическое ИЛИ) на английском языке: http://docs.jsonata.org/boolean-operators#or-boolean-or
| Оператор | Обозначение | Обозначение |
|---|---|---|
| Условие | <условие> ? <истина> : <ложь> |
В зависимости от результата условия возвращает либо значение истины либо лжи |
Подробнее об операторе условия:
? : (Условие) в JSONataУсловный оператор (? :) используется для вычисления одного из двух альтернативных выражений на основе результата условия предиката (теста, условия). Оператор принимает форму:
<условие> ? <истина> : <ложь>
Сначала вычисляется выражение <условие>. Если он принимает значение логической истины true, то оператор возвращает результат вычисления выражения <истина>. В противном случае он возвращает результат вычисления выражения <ложь>. Если <условие> вычисляется не как логическое значение, то значение сначала преобразуется в логическое с использованием правил функции $boolean.
Примеры:
age >= 18 ? «Совершеннолетий»: «Несовершеннолетний»price > 999 ? «Дорогой» : «Дешевый»🧩 Официальная документация языка JSONata по ? : (условие) на английском языке: http://docs.jsonata.org/other-operators#–conditional
Примеры:
Требуется присвоить наибольшую цену товару.

📝 Атрибуту price (цена товара) присваем исходное поле price или oldPrice, в зависимости от того, какое из них больше.
Найти значение скидки в рублях, если таковая имеется.

📝 Атрибуту discount (скидка) присваем разницу исходных полей oldPrice и price, если oldPrice больше, иначе присваиваем пустую строку.

📝 Атрибуту sex (пол) присваем значение строки в зависимости от того, какая подстрока имеется в атрибуте $A.productName. В данном примере реализованы вложенные друг в друга операторы условия.
🔗 Подробнее о функциях $contain() и $A можно прочитать здесь: