如何将数据序列化为缩进json

问题描述:

我正在使用此代码将用户序列化为json文本文件。如何将数据序列化为缩进json

if (File.Exists(path)) 
{ 
    using (var file = File.CreateText(path)) 
    { 
     var serializer = new JsonSerializer(); 
     serializer.Serialize(file, this.users); 
    } 
} 

这是结果,我得到:

[output]

我怎样才能得到这样的结果:

[pretty-print]

+0

为什么你需要创建一个“美丽的文件”? – Alex

+0

这是['Newtonsoft.Json.JsonSerializer'](http://www.newtonsoft.com/json/help/html/t_newtonsoft_json_jsonserializer.htm)? – dbc

+0

在“url-rewriting”中没有可以想象的定义,该标签是适用的。 –

用这个代替:

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

也可以直接写入IO流到内存然后写出,但格式化。 –

+0

@JonathonChase真的,你的解决方案明显更好。另外,OP的更少修改。有一个upvote〜 – Xiaoy312

将串行器的格式设置为缩进。

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