[英]Generate pretty (indented) JSON with serde
使用serde_json包,我可以使用
::serde_json::to_string(&obj)
將對象序列化為JSON字符串。 生成的JSON使用緊湊格式,如:
{"foo":1,"bar":2}
但是如何生成漂亮/縮進的JSON? 例如,我想得到這個:
{
"foo": 1,
"bar": 2
}
使用to_string_pretty
函數獲取縮進的JSON:
::serde_json::to_string_pretty(&obj)
serde_json::to_string_pretty
函數生成漂亮的縮進JSON。
#[macro_use]
extern crate serde_json;
fn main() {
let obj = json!({"foo":1,"bar":2});
println!("{}", serde_json::to_string_pretty(&obj).unwrap());
}
這種方法默認為2個縮進空格,這恰好是您在問題中要求的。 您可以使用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());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.