2015-08-28 42 views
-4

我有一個問題,從包含多個這些字符的字符串中刪除字符\。無法刪除字符從字符串c#

我要做的就是:

 string oldString = "{\"data\": [{\"name\": \"Test User Two\",\"id\": \"138488723160636\"}]}"; 
     string newString = oldString.Replace(@"\", ""); 

這是行不通的。在另一方面以下不工作:

 string test = "fafeaeaetrt"; 
     string newString = test.Replace(@"a", ""); 

除了這個我幾乎嘗試了下面的線程每一個解決方案,沒有什麼工作: Remove '\' char from string c#

我知道有一些東西我一定誤解了約這:) :)

你能告訴我什麼以及如何刪除字符\?

編輯:

但JSON似乎並沒有工作。當_fbClient.Client.Get(「/ me/friends」)方法返回時,我有一個單元測試返回這個json。叫做。見下面

 dynamic friendListData = _fbClient.Client.Get("/me/friends"); 

     foreach (dynamic friend in friendListData.data) 
     { 
      friendsFacebookIds.Add(Convert.ToInt64(friend.id)); 
     } 

當我嘗試訪問我得到的異常消息數據:「串」不包含定義「數據」

位認爲事做,因爲這JSON反斜槓使用在線驗證器驗證是否有效並刪除反斜槓。

+4

反正你的字符串不包含任何反斜槓。他們只是爲了逃避報價。 –

+0

Don'y取代任何東西,你的json是正確的。嘗試'var obj = JObject.Parse(oldString);' – Eser

+0

首先解釋「不工作的部分」。會發生什麼,你期望發生什麼? (複製粘貼一些輸出。)但是,您的'oldString'不包含任何\字符,您在代碼中擁有的\字符用於轉義雙引號。 – nos

回答

3

那些編譯器正在轉義"。它們不在字符串數據本身中。即使對於Visual Studio調試器也是如此 - 您可能會在此處看到它們。

如果不存在,編譯器會將其視爲字符串文字的結尾。

您可以read up on C#'s string escaping

現在,如果字符串文字前綴爲@,那意味着實際的\就在那裏。

0

這不起作用,因爲在oldstring\被用作轉義序列。因此,有在oldstring

5

沒有\字符沒有\字符在您的字符串,只是"人物需要與\來逃避。