Skip to content
Tools for "dot map" representations of serde_json Maps
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
.travis.yml
Cargo.toml
README.md

README.md

dot_json Build Status

Utilities for working with serde_json::Map structures as "dot maps".

[dependencies]
dot_json = "0.2"

value_to_dot

See also: https://github.com/serde-rs/json#constructing-json-values

#[macro_use]
extern crate serde_json;
extern crate dot_json;

use dot_json::value_to_dot;
use serde_json::{Map, Value};

fn main() {
	let obj = json!({
		"foo": "Lorem ipsum",
		"bar": [123, null, { "baz": "Dolor sit amet" }],
		"qux": {
			"deep": {
				"one": true,
				"two": false,
			}
		}
	});
		
	let obj_dot = value_to_dot(&obj);
	
	// obj_dot is now: {
	//     "foo": "Lorem ipsum",
	//     "bar.0": 123,
	//     "bar.1": null,
	//     "bar.2.baz": "Dolor sit amet",
	//     "qux.deep.one": true,
	//     "qux.deep.two": false
	// }
		
	assert_eq!(Value::Null, obj_dot["bar.1"]);
	assert_eq!(Value::Bool(false), obj_dot["qux.deep.two"]);
		
	let arr = json!([
		{ "foo", false },
		null
	]);
		
	let arr_dot = value_to_dot(&arr);
		
	assert_eq!(Value::Bool(false), arr["0.foo"]);
	assert_eq!(Value::Null, arr["1"]);
}

map_to_dot_map

Used by value_to_dot and arr_to_dot_map to convert deep serde_json::Map to shallow dot maps.

arr_to_dot_map

Used by value_to_dot to convert deep serde_json::Value::Array vectors to shallow dot maps.

You can’t perform that action at this time.