#serde-json #json #serde #value #search

json_value_search

Interface to search elements into serde_json::Value

8 releases (2 stable)

1.0.1 Dec 17, 2021
0.1.3 Dec 7, 2021
0.1.2 Dec 6, 2021
0.1.1 Sep 28, 2020
0.1.0 Aug 30, 2020

#1749 in Encoding


Used in chewdata

MIT/Apache

13KB
86 lines

json_value_search

Actions Status semantic-release

Give an interface to search values into json_serde::Value.

Installation

[dependencies]
json_value_search = "1.0"

Usage

extern crate json_value_search;

use json_value_search::Search;
use serde_json::Value;

let value: Value = serde_json::from_str(r#"{"field_A":[{"field.B":"value_B"},{"field_C":"value_C"}]}"#).unwrap();

let value_expected_with_wildcard: Value = serde_json::from_str(r#"[{"field.B":"value_B"},{"field_C":"value_C"}]"#).unwrap();
assert_eq!(Some(value_expected_with_wildcard),value.clone().search(r#"/field_A/*"#));

let value_expected_for_specific_field: Value = serde_json::from_str(r#"["value_B"]"#).unwrap();
assert_eq!(Some(value_expected_for_specific_field),value.clone().search(r#"/field_A/*/field.B"#));

let value_expected_for_specific_index: Value = serde_json::from_str(r#"{"field.B":"value_B"}"#).unwrap();
assert_eq!(Some(value_expected_for_specific_index),value.clone().search(r#"/field_A/0"#));

let value_expected_with_regex: Value = serde_json::from_str(r#"["value_B","value_C"]"#).unwrap();
assert_eq!(Some(value_expected_with_regex),value.clone().search(r#"/field_A/*/field.+"#));

Contributing

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.

License

Apache MIT

Dependencies

~2.7–4MB
~75K SLoC