jsonata_dart library
A pure Dart implementation of JSONata - JSON query and transformation language.
JSONata is a lightweight query and transformation language for JSON data. It provides a simple, expressive syntax for querying, filtering, and transforming JSON structures.
Basic Usage
import 'package:jsonata_dart/jsonata_dart.dart';
void main() {
// Simple path expression
final expr = Jsonata('Account.Order.Product.Price');
final result = expr.evaluate({'Account': {'Order': {'Product': {'Price': 42}}}});
print(result); // 42
// With aggregation
final sumExpr = Jsonata(r'$sum(numbers)');
final total = sumExpr.evaluate({'numbers': [1, 2, 3, 4, 5]});
print(total); // 15
}
Features
- Path expressions for navigating JSON structures
- Predicates and filters for selecting specific elements
- Built-in functions for string, numeric, array, and object manipulation
- Lambda expressions and higher-order functions
- Variable binding and custom function registration
- Transform expressions for modifying JSON structures
See https://jsonata.org for the full language specification.
Classes
Exceptions / Errors
- JsonataException
- Exception thrown when JSONata encounters an error during parsing or evaluation.