macro_rules! get {
    () => { ... };
    ($a:expr $(,)*) => { ... };
    ($a:expr, $b:expr $(,)*) => { ... };
    ($a:expr, $b:expr, $c:expr $(,)*) => { ... };
}
Expand description

Based on get()

Examples:

#[macro_use] extern crate serde_json_lodash;
use serde_json::json;

let object = json!({
  "a": [{ "b": { "c": 3 } }]
});
assert_eq!(
  get!(object.clone(), json!("a[0].b.c")),
  json!(3)
);
assert_eq!(
  get!(object.clone(), json!(["a", "0", "b", "c"])),
  json!(3)
);
assert_eq!(
  get!(object.clone(), json!("a.b.c"), json!("default")),
  json!("default")
);

More examples:

assert_eq!(
  get!(json!("中文"), json!("1")),
  json!("文")
);
assert_eq!(
  get!(json!([1,"abcd"]), json!("1[2]")),
  json!("c")
);