Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 序列化保留额外的反斜杠?_C#_.net_Json.net_.net 4.5 - Fatal编程技术网

C# 序列化保留额外的反斜杠?

C# 序列化保留额外的反斜杠?,c#,.net,json.net,.net-4.5,C#,.net,Json.net,.net 4.5,(使用Newtonsoft.Json 6.0.6) 鉴于此代码: var folderNames = new List<string> { @"C:\Hello", @"C:\World" }; string json = JsonConvert.SerializeObject(folderNames); Console.WriteLine(json); 我得到这个控制台输出(例如,unescaped json): 我不希望额外的转义反斜杠出现在控制台输出中建议是什么 (代码也可以

(使用Newtonsoft.Json 6.0.6)

鉴于此代码:

var folderNames = new List<string> { @"C:\Hello", @"C:\World" };
string json = JsonConvert.SerializeObject(folderNames);
Console.WriteLine(json);
我得到这个控制台输出(例如,unescaped json):

我不希望额外的转义反斜杠出现在控制台输出中
建议是什么


(代码也可以在.NET Fiddle上找到:)

Javascript正在以c的方式对斜杠进行转义是javascript中的转义字符。JSON是有效的

JSON。替换(\\”,“”)
?@CSharper,JSON.Replace(@“\\”,@“\”)可以工作。如果你写这篇文章作为一个答案,我可以给你信用。看看这篇文章@CSharper,谢谢,但我昨天已经读了那篇文章,我不知道这对我有什么帮助。看看我文章末尾的.NETFiddle链接,看看会发生什么。你的替换建议是我唯一能想到的恢复逃跑行为的方法。在我看来,JsonSerializer应该已经知道反斜杠在C#中是一个转义字符,所以没有必要再这样做。根据JSON规范,没有“额外”的反斜杠。反斜杠必须转义才能使JSON有效。(见)你在小提琴中得到的输出正是我期望看到的。你是说你想为显示目的创建无效的JSON吗?是的,我知道。那么,我该怎么做才能让Console.WriteLine输出我所期望的结果呢?
"[\"C:\\\\Hello",\"C:\\\\World\"]"
["C:\\Hello","C:\\World"]