Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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中删除字符串中的斜杠,或者如何创建包含双引号的字符串_C#_Json_Replace_Stripslashes - Fatal编程技术网

C# 如何在c中删除字符串中的斜杠,或者如何创建包含双引号的字符串

C# 如何在c中删除字符串中的斜杠,或者如何创建包含双引号的字符串,c#,json,replace,stripslashes,C#,Json,Replace,Stripslashes,我在和一根绳子搏斗 "[{\"Item\": { \"Name\": \"item1\" }, \"ShipQuantity\": \" 50.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.000000000000000

我在和一根绳子搏斗

"[{\"Item\": { \"Name\": \"item1\" }, \"ShipQuantity\": \" 50.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.0000000000000000000\"}]"
我需要一模一样的绳子

[{"Item": { "Name": "item1" }, "ShipQuantity": " 50.0000000000000000000", "Total": "10.0000000000000000000"},{"Item": { "Name": "Gratuity" }, "ShipQuantity": " 1.0000000000000000000", "Total": "10.0000000000000000000"}]"
但要么无法从中删除斜杠,我尝试了

var string = "[{\"Item\": { \"Name\": \"item1\" }, \"ShipQuantity\": \" 50.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.0000000000000000000\"}]";

string = string.Replace(@"\","");
但它并没有取代它。

您正在正确地转义
。根本没有问题

var string=“[{\'Item\”:{\'Name\”:\'item1\”,\'ShipQuantity\:\'50.00000000000000000000\,\'Total\:\'10.00000000000000000000\”,{\'Item\”:{\'Name\:\'feedy\,'ShipQuantity\:'1.00000000000000000000\,'Total\:'10.00000000000000000000000000000000\'”;
看到反斜杠的原因是您正在调试器中预览输出,调试器会自动转义双引号。

您转义的
正确。根本没有问题

var string=“[{\'Item\”:{\'Name\”:\'item1\”,\'ShipQuantity\:\'50.00000000000000000000\,\'Total\:\'10.00000000000000000000\”,{\'Item\”:{\'Name\:\'feedy\,'ShipQuantity\:'1.00000000000000000000\,'Total\:'10.00000000000000000000000000000000\'”;

看到反斜杠的原因是您正在调试器中预览输出,调试器会自动转义双引号。

JSON
字符串中删除所有转义字符的最佳方法是使用
Regex.Unescape()
方法。此方法返回不带转义字符的新字符串。即使是
\n
\t
等字符也会被删除

确保导入
System.Text.RegularExpressions
命名空间:

using System.Text.RegularExpressions

var string = "[{\"Item\": { \"Name\": \"item1\" }, \"ShipQuantity\": \" 50.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.0000000000000000000\"}]";

var unescapedstring = Regex.Unescape(string);

有关此方法的更多信息,请参见

JSON
字符串中删除所有转义字符的最佳方法是使用
Regex.Unescape()
方法。此方法返回不带转义字符的新字符串。即使是
\n
\t
等字符也会被删除

确保导入
System.Text.RegularExpressions
命名空间:

using System.Text.RegularExpressions

var string = "[{\"Item\": { \"Name\": \"item1\" }, \"ShipQuantity\": \" 50.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.0000000000000000000\"}]";

var unescapedstring = Regex.Unescape(string);

有关此方法的更多信息,请参见

让我猜猜:您正在Visual Studio调试器中检查此字符串,它将显示该字符串的转义形式,即使实际字符串不包含反斜杠。不要忘记,如果在调试模式下预览该字符串,它将显示转义斜杠。尝试打印字符串,它应该是正确的。是的,我正在visual studio中调试它,但我不仅在调试它。我也张贴数据后,字符串替换。在我接收发布数据的地方,还有斜杠(),而不是删除
“-\”的字符串内容-“
并检查它的.Length属性-它不计算反斜杠,因为它不在这里让我猜猜:您正在Visual Studio调试器中检查此字符串,它将显示字符串的转义形式,即使实际字符串不包含反斜杠。不要忘了,如果在调试模式下预览字符串,它会显示你逃逸斜杠。尝试打印字符串,它应该是正确的。是的,我正在visual studio中调试它,但我不仅在调试它。我也张贴数据后,字符串替换。在我接收发布数据的地方,还有斜杠(),而不是删除
“-\”的字符串内容-“
并检查它的.Length属性-它不计算反斜杠,因为它随后不会替换斜杠,我也在发布数据。我收到的数据没有删除斜杠。我相信没有刀砍。使用控制台打印字符串。例如,WriteLine(字符串)。如果您在控制台中没有看到任何斜杠,那么它是正确的。就像大多数人在这里写的,这是由于调试器预览。在替换斜杠后,我也发布了数据。我收到的数据没有删除斜杠。我相信没有刀砍。使用控制台打印字符串。例如,WriteLine(字符串)。如果您在控制台中没有看到任何斜杠,那么它是正确的。就像大多数人在这里写的那样,这是由于调试器预览。