packages/plugins/operators/operators-jsonata/README.md
JSONata operator for Lowdefy - powerful query and transformation language for JSON data.
JSONata is a lightweight query and transformation language for JSON data. It provides a simple and intuitive way to navigate, query, and transform JSON structures.
_jsonataEvaluate a JSONata expression against data.
Syntax:
_jsonata:
on: <data>
expr: <string>
bindings: <object> # optional
Parameters:
on: The input data to evaluate the expression againstexpr: A JSONata expression stringbindings: Optional object to provide additional variables to the expressionExamples:
# Basic arithmetic
_jsonata:
on:
a: 5
b: 3
expr: a + b
# Returns: 8
# String concatenation
_jsonata:
on:
firstName: John
lastName: Doe
expr: firstName & " " & lastName
# Returns: "John Doe"
# Array filtering
_jsonata:
on:
items: [1, 2, 3, 4, 5]
expr: items[$ > 3]
# Returns: [4, 5]
# Array mapping
_jsonata:
on:
users:
- name: Alice
age: 30
- name: Bob
age: 25
expr: users.name
# Returns: ["Alice", "Bob"]
# With bindings
_jsonata:
on:
price: 100
expr: price * taxRate
bindings:
taxRate: 1.2
# Returns: 120
# Object transformation
_jsonata:
on:
user:
firstName: Jane
lastName: Smith
email: [email protected]
expr: |
{
"fullName": user.firstName & " " & user.lastName,
"contact": user.email
}
# Returns: { "fullName": "Jane Smith", "contact": "[email protected]" }
# Array transformation
_jsonata:
on:
orders:
- id: 1
amount: 100
- id: 2
amount: 200
expr: orders.{ "orderId": id, "total": amount * 1.1 }
# Returns: [{ "orderId": 1, "total": 110 }, { "orderId": 2, "total": 220 }]
JSONata provides many powerful features:
$sum, $count, $average, $map, $filter, etc.For more information on JSONata syntax, visit https://jsonata.org