Function dot_json::map_to_dot_map [] [src]

pub fn map_to_dot_map(src: &Map<String, Value>) -> Map<String, Value>

Create a flat dot map from a deep serde_json::Map

Example

use serde_json::{Map, Value, from_str};

let data = json!({
    "foo": "Lorem ipsum",
    "bar": [null, 123, true],
    "baz": { "qux": 789 }
});

if let Value::Object(map) = data {
    let dot_map = map_to_dot_map(&map);

    assert_eq!(5, dot_map.len());
    assert_eq!(Some(&Value::String("Lorem ipsum".to_string())), dot_map.get("foo"));
    assert_eq!(Some(&Value::Null), dot_map.get("bar.0"));
    assert_eq!(Some(&Value::Number(123.into())), dot_map.get("bar.1"));
    assert_eq!(Some(&Value::Bool(true)), dot_map.get("bar.2"));
    assert_eq!(Some(&Value::Number(789.into())), dot_map.get("baz.qux"));
}