pub fn canonical_json(v: &Value) -> StringExpand description
The input as one canonical string: object keys sorted at every level, no whitespace, so that two inputs equal as data are equal as keys whatever order a client wrote them.
use majordomus_cli::capability::executor::canonical_json;
use serde_json::json;
assert_eq!(canonical_json(&json!({"b": 2, "a": {"d": 1, "c": [3, {"z": 0, "y": 1}]}})),
canonical_json(&json!({"a": {"c": [3, {"y": 1, "z": 0}], "d": 1}, "b": 2})));
assert_ne!(canonical_json(&json!([1, 2])), canonical_json(&json!([2, 1])), "arrays are ordered");