Skip to content

Latest commit

 

History

History
112 lines (83 loc) · 5.55 KB

function.md

File metadata and controls

112 lines (83 loc) · 5.55 KB

<- На головну Розділ

Вирази

Вирази з рядками

У виразах шляху можна використовувати літеральні константи, помістивши символи в лапки: подвійні " або одинарні ‘ (як і рядки JSON). Рядки можна комбінувати за допомогою оператора конкатенації &, цей оператор поєднує два рядки, які повертаються виразами. Це єдиний оператор, який намагатиметься збирати операнди разом до очікуваного рядкового типу. У таблиці 11.5 показні приклади оператору &. Можна перевірити ці приклади, перейшовши на сайт http://try.jsonata.org/ (виберіть приклад Address). `

Приклад:

{
  "FirstName": "Fred",
  "Surname": "Smith",
  "Age": 28,
  "Address": {
    "Street": "Hursley Park",
    "City": "Winchester",
    "Postcode": "SO21 2JN"
  }
}

Таблиця 11.5.

JSONata Result
FirstName & ' ' & Surname`` "Fred Smith"``
Address.(Street & ', ' & City)`` "Hursley Park, Winchester"``
5&0&true`` "50true"

Числові вирази

Вирази шляхів, які вказують на числове значення, повернуть це значення як числовий тип. JSONata також може використовувати числові контстанти за тими ж правилами, що і для JSON-чисел. Числові літетерали та вирази можуть бути використані в розрахунках результатів з використанням звичайних математичних операторів. Підтримувані оператори:

  • + додавання
  • - віднімання
  • * множення
  • / ділення
  • % остача від ділення

У таблиці 11.6 показні приклади арифметичних операторів. Можна перевірити ці приклади, перейшовши на сайт `http://try.jsonata.org/ (скопіюйте приклад в поле Exerciser). Приклад:

{ "Numbers": [1, 2.4, 3.5, 10, 20.9, 30] }

Таблиця 11.6.

JSONata Result Коментар
Numbers[0] + Numbers[1] 3.4 додати 2 числа
Numbers[0] - Numbers[4] -19.9 віднімання
Numbers[0] * Numbers[5] 30 множення
Numbers``[0] / Numbers[4] 0.04784688995215 ділення
Numbers``[2] % Numbers[5] 3.5 остача від ділення

Вирази порівняння

               В предикатах можна використоувати оператори порівнянн двох значень, кі повертають логічні значення true або false. Підтримувані оператори:
  • = дорівнює
  • != не дорівнює
  • < менше ніж
  • <= менше ніж чи дорівнює
  • > більше ніж
  • >= більше або дорівнює ніж
  • in значення міститься в масиві

У таблиці 11.7 показні приклади виразів порівнянь. Можна перевірити ці приклади, перейшовши на сайт http://try.jsonata.org/ (скопіюйте приклад в поле Exerciser).

Приклад:

{ "Numbers": [1, 2.4, 3.5, 10, 20.9, 30] }

Таблиця 11.7.

JSONata Result
Numbers``[0] = Numbers[5] false
Numbers``[0] != Numbers[4] true
Numbers``[1] < Numbers[5] true
Numbers``[1] <= Numbers[5] true
Numbers``[2] > Numbers[4] false
Numbers``[2] >= Numbers[4] false

Булеві вирази

Використовується для об'єднання булевих результатів для підтримки більш складних предикатних виразів. Підтримувані оператори:

  • and
  • or

Зверніть увагу, що not підтримується як функція ($not), а не оператор. У таблиці 11.8 показні приклади булевих виразів. Можна перевірити ці приклади, перейшовши на сайт `http://try.jsonata.org/ (скопіюйте приклад в поле Exerciser).

Таблиця 11.8.

{"Numbers": [1, 2.4, 3.5, 10, 20.9, 30]}
JSONata Result
(Numbers[2] != 0) and (Numbers[5] != Numbers[1]) false
(Numbers[2] != 0) or (Numbers[5] = Numbers[1]) true