0

我正在使用下面的代码来读取和更新text文件。

    using (StreamReader r = new StreamReader(filepath))
    {
      var json = r.ReadToEnd();
      AppSettings rootObject = JsonConvert.DeserializeObject<Settings>(json);
      rootObject.Settings.Size = 20;
      output = JsonConvert.SerializeObject(rootObject);
    }

    //Save back to the same file
    File.WriteAllText(filepath, output);

在读取文件内容之前看起来像这样

   {
       "Settings": {
           "Size": 220, 
   }

更新后,文件内容在一行中显示如下

  {"Settings":{"Size":20}}

如何保留包含空格或缩进的文件。

4

1 回答 1

1

您可以通过为以下内容提供“Indented”来指示 Json.NET 缩进输出Formatting

output = JsonConvert.SerializeObject(rootObject , Formatting.Indented);

虽然这不一定会像原始文件一样格式化文件,但它会以缩进的方式输出。

在线尝试

如果您需要进一步控制文本的缩进方式,您可以创建一个实例JsonSerializer并将 a 传递JsonTextWriter给它的Serialize方法。JsonTextWriterhas (Indentation缩进多少个字符)和IndentChar(使用哪个字符,例如' '空格或'\t'制表符)允许您控制结果。

于 2019-08-13T01:59:52.777 回答