有没有办法在Json.Net JsonSerializer中使用自定义缩进字符?

时间:2016-08-19 09:10:34

标签: c# json serialization json.net

我需要更改JsonSerializer缩进以使用制表符而不是2个空格的方式......这可能吗?

我可以按照here所述打开缩进。

我的代码看起来像这样:

var jsonSerializer = new JsonSerializer
{
    Formatting = Newtonsoft.Json.Formatting.Indented
};

using (var fs = File.Create(fileName))
using (var sw = new StreamWriter(fs))
{
    jsonSerializer.Serialize(sw, data);
}

注意:对于this,这是一个不同的问题,我用JsonTextWriter描述了一种方法 - 如果可能的话,我想用JsonSerializer来做。

1 个答案:

答案 0 :(得分:5)

查看a custom JsonWriter

using (var fs = File.Create("data.json"))
using (var sw = new StreamWriter(fs))
using (var jtw = new JsonTextWriter(sw) { 
  Formatting= Formatting.Indented, 
  Indentation=3, 
  IndentChar = '\t'}) {
  (new JsonSerializer()).Serialize(jtw, data);
}