我需要更改 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 来做。

最佳答案

查看 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);
}

关于c# - 有没有办法在 Json.Net JsonSerializer 中使用自定义缩进字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39035224/

10-10 23:10