C# 替换文本会添加新行,这并不理想
我有一个由Azure为资源生成的json文件 这将/n作为行分隔符,而不是/r/n 我需要遍历该文件,任何包含PrincipleId的行都需要更改,以便PrincipleId值为nullC# 替换文本会添加新行,这并不理想,c#,C#,我有一个由Azure为资源生成的json文件 这将/n作为行分隔符,而不是/r/n 我需要遍历该文件,任何包含PrincipleId的行都需要更改,以便PrincipleId值为null "identity": { "principalId": "41a0a189-06dc-49a9-a178-7ade3e4ca587", "tenantId": &
"identity": {
"principalId": "41a0a189-06dc-49a9-a178-7ade3e4ca587",
"tenantId": "3710dce5-88c6-434d-89e8-232bb0d52601",
"type": "SystemAssigned"
},
将成为
"identity": {
"principalId": null,
"tenantId": null,
"type": "SystemAssigned"
},
理想情况下,我希望保持间距,但我不知道间距是多少,因为缩进可能不同
我当前的实现如下
虽然这在更换方面确实有效,但它会在每条线后增加线间距
var lines = text.SplitIntoList(StringSplitOptions.None, "\n");
for (var lineIndex = 0; lineIndex < lines.Count; lineIndex++)
{
var line = lines[lineIndex];
if (line.Contains("\"principalId\": "))
{
line = "\"principalId\": null,";
lines[lineIndex] = line;
}
}
var array = lines.ToArray();
File.WriteAllLines(file, array);
var lines=text.SplitIntoList(StringSplitOptions.None,“\n”);
对于(var lineIndex=0;lineIndex
有更好的解决办法吗
如何保持间距
Paul不会
File.writealText(File,string.Join(“\n”,行))代码>完成任务?是否可以选择反序列化json?然后可以清除要变为null的属性,然后将其序列化回json。如果合同是“远程服务器返回JSON”,\n
vs\r\n
或者实际上根本没有换行符,这是一个需要更改的实现细节。我无法控制此JSON的结构,尽管它是由Microsoft生成的模板,其中包含大量属性