簡體   English   中英

在C#中處理JSON響應中的轉義字符

[英]Handling escape characters in JSON response in C#

我有一個非常簡單的問題,由於某種原因,我可以找到使用SO和Google的幫助。 我收到的JSON回復如下所示:

"{
\"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中的數據。 嘗試了字符串的.replace和其他解決方案,但是由於某些原因,我仍然使用轉義符。。謝謝! 這是我用來執行請求的代碼

 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, @"\\", ""); 
    }

看起來您對調試器中的值感到困惑。 調試器窗口顯示該字符串的轉義版本。

在此處輸入圖片說明

您可以單擊小放大圖標以在“文本可視化器”中打開字符串,以查看字符串的實際值。

在此處輸入圖片說明

您試圖使用常規轉義符(“ \\\\”)和逐字字符串(@“ string”)兩次轉義\\字符。 嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM