DGKumar Ответов: 6

Как удалить обратную косую черту из данных json в C#?


Я хочу удалить обратную косую черту из приведенных ниже данных json
{ \"filed\": \"0d5bd590-86b5-4281-9ef7-924c15190273\", \"FirstName\": \"1sssqwer\", \"LastName\": \"sss2\", \"EmailId\": \"ssss3@infor.com\", \"ClientPrincipal\": \"0d5bd590-86b5-4281-9ef7-924c15190273\"}

но это не будет удалено

Что я уже пробовал:

строка s = @"{[]}";
var result = s;

var data = JsonConvert.SerializeObject(результат);
string[] токены = данные.Расщеплять(',');

userRole = роль пользователя.Заменять("\"", "");

Member 13964245

Привет, я столкнулся с той же проблемой, но не могу найти правильного решения. вы решили эту проблему? Если да, пожалуйста, поделитесь правильным решением

6 Ответов

Рейтинг:
46

Richard Deeming

Ответ прост: есть является никакой обратной косой черты в строке!

То, что вы видите, - это представление строки отладчиком Visual Studio. Поскольку вы используете C#, он отображает строку с escape-символами, которые вам нужно будет включить, чтобы ввести это значение в качестве строкового литерала в вашем коде C#. Но эти escape-символы на самом деле не являются частью строки.

Если вы используете немедленное окно, введите: ?data,nq и вы должны увидеть содержимое строки без escape-символов.


Рейтинг:
1

Nagaraj Muthuchamy

Подход 1: Используйте string.replace

json.Replace(@"\", " ")


Подход 2: Используйте регулярное выражение.Раскодировал

var regex = new Regex(pattern);

data = Regex.Unescape(data);


Рейтинг:
1

Member 14054562

Спасибо Ричард, я видел это в vs Debug и не зарегистрировать его был против делать это.
То, что бросило меня в то, что я тестировал свои результаты службы REST с помощью клиентского расширения Chrome RESTLet, также показывало ответы от моего сервиса с помощью\.
Попробовал расширение YARC, и этот результат не включал в себя \
странно!


Richard MacCutchan

Кроме того, вы можете получить это, если попытаетесь кодировать строку JSON в JSON во второй раз.

Рейтинг:
1

vjero

var json = JsonConvert.SerializeObject(error);
return Request.CreateResponse(status, JsonConvert.DeserializeObject(json));


Dave Kreskowiak

Необъяснимый фрагмент кода на самом деле не является ответом. Кроме того, символы обратной косой черты на самом деле не находятся в файле JSON.

Рейтинг:
0

Eskandari-MohammadJavad

line.Replace(@"\", string.Empty);

или
line.Replace(@"\", "");


CHill60

Не добавляет ничего нового к ранее опубликованным решениям. Кроме того, это не сработает, так как в строке нет обратной косой черты. Ознакомиться с принятым решением

Рейтинг:
0

futurevj

если вы используете

JsonConvert.SerializeObject

в вашем коде он добавит обратную косую черту по умолчанию, и вы можете удалить ее, сыграв со строкой.

Но лучше создать файл класса и вернуть его непосредственно.

Строго, в случае с веб-API