serde_json箱,我可以用

::serde_json::to_string(&obj)

若要将对象序列化为JSON字符串,请执行以下操作.生成的JSON使用紧凑的格式,如:

{"foo":1,"bar":2}

But how do I generate pretty/indented JSON? For example, I'd like to get this:

{
  "foo": 1,
  "bar": 2
}

推荐答案

The serde_json::to_string_pretty function generates pretty-printed indented 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());
}

Json相关问答推荐

Vega图表计数聚合如果数据值为空数组则不显示任何内容,如何解决此问题?

将JSON数组组织到菜单中

使用动态语言jQuery:根据匹配模式提取与其他值匹配的值

在这种情况下我如何实现 UnmarshalJSON 并且只为一个接口字段定义特殊行为?

如何使用 jq 在连续的 json 记录流上调用操作

无法使用 vue.js 访问 JSON 数组的项目

jq json - 按键名 Select

JOLT JSON 将值从一对多转换为一对一

如何在 Node.js 中解析包含NaN的 JSON 字符串

如何判断字符串是否为json格式

一起使用 Argparse 和 Json

在 JSON 字符串中react i18n 换行符

规范化 JSON 文件

Jackson Scala 模块的小例子?

对象序列化为 JSON(使用 Gson).如何在 UpperCamelCase 中设置字段名称?

如何使用 LWP 发出 JSON POST 请求?

如何访问 JSON 对象数组的第一个元素?

如何让 javascript 从 .json 文件中读取?

如何从 MVC 控制器返回 Json 对象以查看

仅使用字符串和值解析 JSON 对象