C# 替换文本会添加新行,这并不理想

C# 替换文本会添加新行,这并不理想,c#,C#,我有一个由Azure为资源生成的json文件 这将/n作为行分隔符,而不是/r/n 我需要遍历该文件,任何包含PrincipleId的行都需要更改,以便PrincipleId值为null "identity": { "principalId": "41a0a189-06dc-49a9-a178-7ade3e4ca587", "tenantId": &

我有一个由Azure为资源生成的json文件

这将/n作为行分隔符,而不是/r/n

我需要遍历该文件,任何包含PrincipleId的行都需要更改,以便PrincipleId值为null

  "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生成的模板,其中包含大量属性