如何将数据序列化为带有缩进的JSON格式。

19

我正在使用这段代码将用户序列化为 json 文本文件。

if (File.Exists(path))
{
    using (var file = File.CreateText(path))
    {
        var serializer = new JsonSerializer();
        serializer.Serialize(file, this.users);
    }
}
这是我得到的结果:
[output] 如何获得像这样的结果:
[pretty-print]]

为什么需要创建「美丽的文件」? - Alex
×┐ֵݻ Newtonsoft.Json.JsonSerializer ÕÉù´╝ş - dbc
在任何可想象的“URL重写”的定义中,该标签都不适用。 - Kirk Woll
2个回答

25

将序列化器的格式设置为缩进。

var serializer = new JsonSerializer();
serializer.Formatting = Formatting.Indented;
serializer.Serialize(file, this.users);    

17

请使用这个替代方案:

if (File.Exists(path))
{
    using (var file = File.CreateText(path))
    {
        var json = JsonConvert.SerializeObject(this.users, Formatting.Indented);
        file.Write(json);
    }
}

最好直接将内容写入IO流,然后输出到内存中,但Formatting.Indented是非常恰当的。 - Jonathon Chase
@JonathonChase 确实,你的解决方案肯定更好。而且对 OP 的修改也更少。点个赞~ - Xiaoy312

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接