2015-08-28 43 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

没有\字符没有\字符在您的字符串,只是"人物需要与\来逃避。