macro_rules! to_path {
    () => { ... };
    ($a:expr $(,)*) => { ... };
    ($a:expr, $($rest:tt)*) => { ... };
}
Expand description

Based on to_path()

Examples:

#[macro_use] extern crate serde_json_lodash;
use serde_json::json;
assert_eq!(
  to_path!(json!("a.b.c")),
  json!(['a', 'b', 'c'])
);
assert_eq!(
  to_path!(json!("a[0].b.c")),
  json!(['a', '0', 'b', 'c'])
);

More examples:

assert_eq!(to_path!(), json!([]));
assert_eq!(to_path!(json!(null)), json!([]));
assert_eq!(to_path!(json!(false)), json!(["false"]));
assert_eq!(to_path!(json!(0)), json!(["0"]));
assert_eq!(to_path!(json!("")), json!([]));
assert_eq!(to_path!(json!("..")), json!(["","",""]));
assert_eq!(to_path!(json!(r#"[""]"#)), json!([""]));
assert_eq!(to_path!(json!(r#".a[b]"#)), json!(["","a","b"]));
assert_eq!(to_path!(json!(r#"a['b']"#)), json!(["a","b"]));
assert_eq!(to_path!(json!(r#"a["b"]"#)), json!(["a","b"]));
assert_eq!(to_path!(json!(r#"a['"b"']"#)), json!([ "a", r#""b""# ]));
assert_eq!(to_path!(json!(r#"a["'b'"]"#)), json!([ "a", r#"'b'"# ]));
assert_eq!(to_path!(json!(r#"a[[b]c]"#)), json!(["a","b","c"]));
assert_eq!(to_path!(json!(r#"a[b[c]]"#)), json!(["a","b","c"]));
assert_eq!(to_path!(json!(r#"a[b"#)), json!(["a","b"]));
assert_eq!(to_path!(json!(r#"a[[b"#)), json!(["a","b"]));
assert_eq!(to_path!(json!(r#"a['b"#)), json!(["a",r#"'b"#]));
assert_eq!(to_path!(json!(r#"a["b"#)), json!(["a",r#""b"#]));
assert_eq!(to_path!(json!([])), json!([]));
assert_eq!(to_path!(json!(["x", 0, "y", "z"])), json!(["x", "0", "y", "z"]));
assert_eq!(to_path!(json!({})), json!(["serde_json::map::Map<alloc::string::String, serde_json::value::Value>"]));
assert_eq!(to_path!(json!({"a":1})), json!(["serde_json::map::Map<alloc::string::String, serde_json::value::Value>"]));