selector_as API 추가

This commit is contained in:
freestrings
2019-04-04 09:37:44 +09:00
parent 583c4f4252
commit ec80919f7f
7 changed files with 310 additions and 114 deletions

View File

@ -63,6 +63,33 @@ fn selector() {
assert_eq!(json, ret);
}
#[test]
fn selector_as() {
let json_obj = read_json("./benches/data_obj.json");
let mut selector = jsonpath::selector_as::<Vec<Friend>>(&json_obj);
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Friend {
id: u8,
name: Option<String>,
}
let json = selector("$..friends[2]").unwrap();
let ret = vec!(
Friend { id: 2, name: Some("Gray Berry".to_string()) },
Friend { id: 2, name: Some("Gray Berry".to_string()) },
);
assert_eq!(json, ret);
let json = selector("$..friends[0]").unwrap();
let ret = vec!(
Friend { id: 0, name: None },
Friend { id: 0, name: Some("Millicent Norman".to_string()) },
);
assert_eq!(json, ret);
}
#[test]
fn select() {
let json_obj = read_json("./benches/example.json");