Как удалить косую черту из строки в c# или как создать строку, содержащую двойные кавычки (") - PullRequest
0 голосов
/ 12 февраля 2020

Я борюсь со строкой

"[{\"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(@"\","");

Но это не заменит его.

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Лучший способ удалить все escape-символы из строки JSON - это использовать метод Regex.Unescape(). Этот метод возвращает новую строку без escape-символов. Даже символы, такие как \n \t и c, удаляются.

Обязательно импортируйте пространство имен 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);

Более подробную информацию об этом методе можно найти. здесь

1 голос
/ 12 февраля 2020

Вы бежите " правильно. Там нет проблемы вообще.

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

Причина появления обратных всплесков в том, что вы просматриваете вывод в отладчике, который автоматически экранирует двойные кавычки.

...