如何从 C# 中的字符串中删除斜线或如何创建包含双引号 (") 的字符串

How to remove slashes from a string in c# or how can i create a string which contains double quotes (")

我正在为一个字符串而苦苦挣扎

"[{\"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.0000000000000000000\", \"Total\": \"10.0000000000000000000\"},{\"Item\": { \"Name\": \"Gratuity\" }, \"ShipQuantity\": \" 1.0000000000000000000\", \"Total\": \"10.0000000000000000000\"}]";

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

JSON 字符串中删除所有转义字符的最佳方法是使用 Regex.Unescape() 方法。此方法 returns 一个没有转义字符的新字符串。甚至 \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);

可以找到有关此方法的更多信息here