如何在不修改 space 或缩进的情况下保存文件内容
How to save file content without modifying the space or indents
我正在使用以下代码读取和更新 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,
}
Post更新,文件内容单行显示如下
{"Settings":{"Size":20}}
如何保留包含空格或缩进的文件。
您可以通过为 Formatting
提供 "Indented" 来指示 Json.NET 缩进输出:
output = JsonConvert.SerializeObject(rootObject , Formatting.Indented);
虽然这不一定会完全按照原始格式格式化文件,但它会以缩进方式输出。
如果您需要进一步控制文本的缩进方式,您可以创建 JsonSerializer
的实例并将 JsonTextWriter
传递给它的 Serialize
方法。 JsonTextWriter
有 Indentation
(要缩进的字符数)和 IndentChar
(要使用的字符,例如 space 的 ' '
,或 '\t'
对于选项卡),它允许您控制结果。
我正在使用以下代码读取和更新 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,
}
Post更新,文件内容单行显示如下
{"Settings":{"Size":20}}
如何保留包含空格或缩进的文件。
您可以通过为 Formatting
提供 "Indented" 来指示 Json.NET 缩进输出:
output = JsonConvert.SerializeObject(rootObject , Formatting.Indented);
虽然这不一定会完全按照原始格式格式化文件,但它会以缩进方式输出。
如果您需要进一步控制文本的缩进方式,您可以创建 JsonSerializer
的实例并将 JsonTextWriter
传递给它的 Serialize
方法。 JsonTextWriter
有 Indentation
(要缩进的字符数)和 IndentChar
(要使用的字符,例如 space 的 ' '
,或 '\t'
对于选项卡),它允许您控制结果。