如何从 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
我正在为一个字符串而苦苦挣扎
"[{\"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