pub fn select_values<'a>(
    value: &Map<String, Value>,
    selectors: impl IntoIterator<Item = &'a str>
) -> Map<String, Value>
Expand description

Permissively selects values in a json with a list of selectors. Returns a new json containing all the selected fields.

use serde_json::*;
use permissive_json_pointer::select_values;

let value: Value = json!({
    "name": "peanut",
    "age": 8,
    "race": {
        "name": "bernese mountain",
        "avg_age": 12,
        "size": "80cm",
    },
});
let value: &Map<String, Value> = value.as_object().unwrap();

let res: Value = select_values(value, vec!["name", "race.name"]).into();
assert_eq!(
    res,
    json!({
        "name": "peanut",
        "race": {
            "name": "bernese mountain",
        },
    })
);