Give an interface to search values into json_serde::Value.
Toml
[dependencies]
json_value_search = "0.1"
```rust extern crate jsonvaluesearch;
use jsonvaluesearch::Search; use serde_json::Value;
let value: Value = serdejson::fromstr(r#"{"fieldA":[{"field.B":"valueB"},{"fieldC":"valueC"}]}"#).unwrap();
let valueexpectedwithwildcard: Value = serdejson::fromstr(r#"[{"field.B":"valueB"},{"fieldC":"valueC"}]"#).unwrap(); asserteq!(Some(valueexpectedwithwildcard),value.clone().search(r#"/field_A/*"#));
let valueexpectedforspecificfield: Value = serdejson::fromstr(r#"["valueB"]"#).unwrap(); asserteq!(Some(valueexpectedforspecificfield),value.clone().search(r#"/field_A/*/field.B"#));
let valueexpectedforspecificindex: Value = serdejson::fromstr(r#"{"field.B":"valueB"}"#).unwrap(); asserteq!(Some(valueexpectedforspecificindex),value.clone().search(r#"/field_A/0"#));
let valueexpectedwithregex: Value = serdejson::fromstr(r#"["valueB","valueC"]"#).unwrap(); asserteq!(Some(valueexpectedwithregex),value.clone().search(r#"/fieldA/*/field.+"#)); ```
```
Bench jsonvalue.search(/field/otherfield).
time: [33.771 us 33.857 us 33.950 us]
change: [-13.330% -10.288% -7.2919%] (p = 0.00 < 0.05)
Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) high mild
4 (4.00%) high severe
Bench jsonvalue.search(/field/*/otherfield).
time: [81.117 us 84.117 us 87.467 us]
change: [+3.4453% +6.8087% +10.315%] (p = 0.00 < 0.05)
Found 10 outliers among 100 measurements (10.00%)
9 (9.00%) high mild
1 (1.00%) high severe
Bench jsonvalue.search(/field/1/otherfield).
time: [45.043 us 46.249 us 47.626 us]
change: [-3.0050% +1.0537% +4.8742%] (p = 0.61 > 0.05)
Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) high mild
5 (5.00%) high severe
Bench json_value.search(/field/1).
time: [23.609 us 23.916 us 24.354 us]
change: [-1.9539% -0.8737% +0.3058%] (p = 0.13 > 0.05)
Found 6 outliers among 100 measurements (6.00%)
5 (5.00%) high mild
1 (1.00%) high severe
Bench json_value.search(/field/*/regex).
time: [127.65 us 130.88 us 134.64 us]
change: [+6.0142% +8.2959% +10.611%] (p = 0.00 < 0.05)
Found 14 outliers among 100 measurements (14.00%)
10 (10.00%) high mild
4 (4.00%) high severe
```
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.