我需要读取一个JSON配置文件,修改一个值,然后将修改后的JSON重新保存回该文件。JSON非常简单:
{
"test": "init",
"revision": 0
}
要加载数据并修改值,请执行以下操作:
var config = JObject.Parse(File.ReadAllText("config.json"));
config["revision"] = 1;
到目前为止,一切都很好; 现在,将JSON写回到文件中。首先,我尝试了这个:
File.WriteAllText("config.json", config.ToString(Formatting.Indented));
可以正确写入文件,但缩进只有两个空格。
{
"test": "init",
"revision": 1
}
从文档看来,在使用此方法时似乎无法传递任何其他选项,因此我尝试修改此示例,这将允许我直接设置Indentation
和的IndentChar
属性JsonTextWriter
来指定缩进量:
using (FileStream fs = File.Open("config.json", FileMode.OpenOrCreate))
{
using (StreamWriter sw = new StreamWriter(fs))
{
using (JsonTextWriter jw = new JsonTextWriter(sw))
{
jw.Formatting = Formatting.Indented;
jw.IndentChar = ' ';
jw.Indentation = 4;
jw.WriteRaw(config.ToString());
}
}
}
但这似乎没有任何效果:文件仍然使用两个空格缩进写入。我究竟做错了什么?
问题是您正在使用config.ToString()
,因此使用编写对象时,该对象已经被序列化为字符串并进行了格式化JsonTextWriter
。
使用序列化器将对象序列化到写入器:
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(jw, config);
我正在配置eslint并使用AirBNB样式指南。 我想覆盖缩进(应该是2个空格)为4个空格。但是无论我在我的. eslintrc中做什么,我都不能抑制这个错误,这样我就可以使用4个空格的缩进。 我的代码库中到处都有这样一条消息:“预期缩进2个空格,但发现4个。(react/jsx indent)”。 我正在使用eslint 4.9.0。我如何解决这个问题?谢谢
问题内容: 我正在使用Json.Net将XML序列化为Json。当我将序列化的字符串写入文件时,所有内容都在一行中。如何获得具有通常的制表符和缩进的Json实际外观? 问题答案: 将JSON writer 属性设置为: 该方法还具有需要枚举的重载(感谢John Flatness)。 文档: 序列化对象
对不起,我知道以前有人问过这个问题,但其他答案对我没有任何帮助。 PhpStorm一直使用4个空格来缩进,这让我抓狂。该文件是一个. php文件,我所知道的所有设置都设置正确。我已经检查了这些东西: 1.)编辑器|代码样式|“检测并使用现有文件缩进”未选中(文件仍使用2个空格) 2.)编辑器|代码样式|PHP|“选项卡大小” 3.)我已重新启动PhpStorm 4.)我已经关闭并重新打开了文件。
问题内容: 我正在编辑一个Python文件,该文件使用两个空格编写程序缩进-我更喜欢4个空格。在我的.vimrc中,我具有与缩进相关的以下设置: 如何使Vim将所有现有的2个空格缩进转换为4个空格缩进? 换一种说法: 变成 当我尝试gg = G 成为 问题答案: 为了使每行开头(且仅在开头)的空格数量加倍: 替换模式中的是匹配模式。 可能对您没有任何副作用。
嗨,我正在尝试使用C#应用程序的收据打印机打印一张账单/收据。 预期输出是这样的: 我一直在使用函数,但是输出常常不对齐,并且GET的间距取决于项目名称长度等。 怎样才能解决这个问题? 我使用的代码是
问题内容: 在编码python时,我仅使用2个空格进行缩进,请确保PEP-8确实建议使用4个空格,但从历史上看,这是不寻常的。 那么,谁能说服我使用4个空格而不是2个空格?有什么优缺点? PS最后,将所有现有代码库从2个空间转换为4个空间的简单方法是什么? PPS PEP-8也强烈建议不要使用制表符进行缩进。在这里阅读 因此,总结一下: 优点: 包裹长度超过80行的字符串时,要安排更多空间。 可以