【发布时间】:2019-02-21 21:42:13
【问题描述】:
使用下面的代码将 json 字符串写入文件时,在编辑文件时它不会以漂亮的格式显示,而只是显示为字符串格式。如果我使用 .Net fiddle,控制台输出是正确的并且看起来不错。如何将 json 字符串写入文件,因此在编辑 /w say notepad++ 时,它会以漂亮的格式显示。有人可以帮忙吗?
.Net Fiddle 代码用于控制台输出,效果很好
public class Program
{
public static void Main()
{
String sPrettyStr;
var item = "{\"messageType\":\"0\",\"code\":\"1\"}";
sPrettyStr = JValue.Parse(item).ToString(Newtonsoft.Json.Formatting.Indented);
Console.WriteLine(sPrettyStr);
}
}
.Net Fiddle 控制台输出
{
"messageType": "0",
"code": "1"
}
但是当使用这个将格式化的 json 字符串写入文件时
File.WriteAllText(c:/test.json,JValue.Parse(item).ToString(Newtonsoft.Json.Formatting.Indented))
我在使用 notepad++ 编辑时得到这个文件输出
"{\\\"messageType\\\":\\\"0\\\",\\\"code\\\"}"
【问题讨论】:
-
不,我已经尝试了所有这些示例,但它们都不起作用。文件输出仍然是字符串格式。
-
我已将您的代码复制并粘贴到 LINQPad 中,它会产生您想要的输出,因此显然有一些您没有显示的代码干扰了代码。
-
我将您的代码复制/粘贴到一个新的控制台应用程序中,并且在没有任何更改的情况下也获得了预期的结果。
-
尝试使用 JToken.Parse() 而不是 JValue.Parse()。也许您正在使用将给定字符串视为文字的旧版本库。