使用serde_json https://github.com/serde-rs/json板条箱,我可以用
::serde_json::to_string(&obj)
将对象序列化为 JSON 字符串。生成的 JSON 使用紧凑格式,例如:
{"foo":1,"bar":2}
但是如何生成漂亮/缩进的 JSON 呢?例如,我想得到这个:
{
"foo": 1,
"bar": 2
}
The serde_json::to_string_pretty https://docs.rs/serde_json/latest/serde_json/fn.to_string_pretty.html函数生成打印精美的缩进 JSON。
use serde_json::json;
fn main() {
let obj = json!({"foo":1,"bar":2});
println!("{}", serde_json::to_string_pretty(&obj).unwrap());
}
此方法默认为 2 个缩进空间,这恰好是您在问题中所要求的。您可以使用自定义缩进PrettyFormatter::with_indent https://docs.rs/serde_json/latest/serde_json/ser/struct.PrettyFormatter.html.
use serde::Serialize;
use serde_json::json;
fn main() {
let obj = json!({"foo":1,"bar":2});
let mut buf = Vec::new();
let formatter = serde_json::ser::PrettyFormatter::with_indent(b" ");
let mut ser = serde_json::Serializer::with_formatter(&mut buf, formatter);
obj.serialize(&mut ser).unwrap();
println!("{}", String::from_utf8(buf).unwrap());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)