The serde_json::to_string_pretty
generates fairly imprinted JSON indents.
#[macro_use] extern crate serde_json; fn main() { let obj = json!({"foo":1,"bar":2}); println!("{}", serde_json::to_string_pretty(&obj).unwrap()); }
This approach by default has two spaces in the indentation, which, as it turns out, are what you asked in your question. You can indent using PrettyFormatter::with_indent
.
#[macro_use] extern crate serde_json; extern crate serde; use serde::Serialize; fn main() { let obj = json!({"foo":1,"bar":2}); let buf = Vec::new(); let formatter = serde_json::ser::PrettyFormatter::with_indent(b" "); let mut ser = serde_json::Serializer::with_formatter(buf, formatter); obj.serialize(&mut ser).unwrap(); println!("{}", String::from_utf8(ser.into_inner()).unwrap()); }
source share