2015-05-24 5 views
0

У меня довольно простая проблема, по которой я могу найти помощь для использования SO и Google. Я получаю JSON ответ, который выглядит следующим образом:.Обращение с escape-символами в ответе JSON на C#

"{ 
\"data\": [ 
    { 
     \"type\": \"gif\", 
     \"id\": \"FiGiRei2ICzzG\", 
     \"url\": \"http: //giphy.com/gifs/funny-cat-FiGiRei2ICzzG\", 
     \"bitly_gif_url\": \"http: //gph.is/1fIdLOl\", 
     \"bitly_url\": \"http: //gph.is/1fIdLOl\", 
     \"embed_url\": \"http: //giphy.com/embed/FiGiRei2ICzzG\", 
     \"username\": \"\", 
     \"source\": \"http: //tumblr.com\", etc........ 

Так это стандартный JSON, но с \ экранирующих символов посыпают в Теперь эти экранирующих символов я пытаюсь удалить, чтобы разобрать данные из JSON. Пробовал замену строки и некоторых других решений, но по какой-то причине я остаюсь с экранирующими символами. Спасибо! Это код, который я использовал, чтобы сделать

просьбой об
public static void GetRequest() 
    { 
     string sFullURL = "http://api.giphy.com/v1/gifs/search?q="; 
     string sSearchTerm = "funny+cat"; 
     string sContent; 
     string sAPIKey = "&api_key=dc6zaTOxFJmzC"; 
     string sLimit = "&limit=1"; 
     string sFullRequest = "http://api.giphy.com/v1/gifs/search?q=funny+cat&api_key=dc6zaTOxFJmzC"; 
     HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(string.Format(sFullURL + sSearchTerm + sAPIKey + sLimit)); 
     WebReq.Method = "GET"; 
     HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); 
     System.Diagnostics.Debug.WriteLine(WebResp.StatusCode); 
     System.Diagnostics.Debug.WriteLine(WebResp.Server); 
     Stream Answer = WebResp.GetResponseStream(); 
     StreamReader _Answer = new StreamReader(Answer); 
     sContent = _Answer.ReadToEnd(); 
     sContent = Regex.Replace(sContent, @"\\", ""); 
    } 
+1

Показать код, который вы пытались – Shaharyar

+1

вы проверить значение в отладчике? если да, то обратных косых черт нет. Я не вижу каких-либо экранированных кавычек, когда я открываю этот URL-адрес в браузере. Отладчик показывает экранированную версию строки. Вы можете щелкнуть по значку небольшого увеличения слева от показания значения отладчика, чтобы просмотреть фактическое значение – imlokesh

+0

Я вижу эти значения в отладчике. Может быть, он не показывает правильную строку? –

ответ

-2

Вы пытаетесь избежать символ \ дважды с помощью регулярного побега («\\») и стенографических строки (@ «строка»). Попробуйте

sContent = Regex.Replace(sContent, @"\", ""); 
4

Похоже, вы путаться значением в отладчике. Окна отладчика показывают экранированную версию строки.

enter image description here

Вы можете нажать на иконку увеличения, чтобы открыть строку в «текстовом визуализатор», чтобы увидеть фактическое значение строки.

enter image description here