32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# JSONFilter
|
|
`jsonfilter` is a Rust crate designed to facilitate filtering and comparing JSON values based on specified criteria. It provides functions for comparing JSON values, applying filters to JSON objects, and determining if a filter matches a given JSON object. Think of MongoDBs `find()` function but as a filter function. For a full syntax guide, see the [Filter Documentation](./docs/filter.md)
|
|
|
|
## Usage
|
|
To use `jsonfilter`, add it to your `Cargo.toml` and add the following to your Rust code:
|
|
```rust
|
|
use jsonfilter::{order, matches};
|
|
```
|
|
|
|
### Comparing JSON Values
|
|
You can compare two JSON values using the `order` function:
|
|
```rust
|
|
use serde_json::json;
|
|
use std::cmp::Ordering;
|
|
use jsonfilter::order;
|
|
|
|
let a = json!(10);
|
|
let b = json!(5);
|
|
assert_eq!(order(&a, &b), Ordering::Greater);
|
|
```
|
|
|
|
### Matching Filters
|
|
To check if a JSON object matches a filter, use the `matches` function:
|
|
```rust
|
|
use serde_json::json;
|
|
use jsonfilter::matches;
|
|
|
|
let filter = json!({"name": "John", "age": 30});
|
|
let obj = json!({"name": "John", "age": 30, "city": "New York"});
|
|
|
|
assert!(matches(&filter, &obj));
|
|
```
|