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相关问答推荐

将PNG图像保存为Python中的JSON文件

如何在JSONata对象中迭代并向数组添加新字段?

JOLT转换以根据条件删除json对象

JOLT转换以基于对象属性过滤JSON数组

当由.sh脚本执行时,AWS查询字符串不会提取任何数据

使用 jq 工具将文本从 txt 文件转换为 json

JOLT 在 struct 体中间添加一个 JSON 字段

Serde JSON 反序列化枚举

将 ES6 类对象序列化为 JSON

从多维数组数据生成json字符串

如何从Typescript 中的json响应中获取日期对象

在 JSON 编码的 HTML5 数据属性中转义/编码单引号

我应该如何处理 JSON 中的 HATEOAS 链接和引用?

Json.NET 是否缓存类型的序列化信息?

如何从 BindingResult 获取控制器中的错误文本

在播放框架 JsObject 中解析 Json 数组

安全地处理 node 中的错误 JSON.parse()

jQuery AJAX 请求在 IE 中失败

如何使用 NewtonSoft 更新 JSON 对象的属性

使用 JSON 的 jQuery UI 自动完成