【问题标题】:How do I remove backslashes from URLs?如何从 URL 中删除反斜杠?
【发布时间】:2010-02-23 23:27:15
【问题描述】:

我正在使用 Twitter API,我得到的响应是 JSON 格式。当我使用 C# 解析 JSON 时,profile_image_url 的值不包含正确的 URL。此 URL 在响应中绝对没问题,但在解析响应后,我得到以下 URL。如何删除反斜杠?

http://a1.twimg.com/profile_images/700049686/14_normal.jpg

【问题讨论】:

  • 您的解析器可能有问题。
  • 我不认为外面有超感官的人......我相信你会展示一些代码,你会有更多的答案。顺便说一句,为什么不使用现有的 JSON 解析器?
  • @Mike 我正在使用现有的 Json 解析器,我没有编写自己的,甚至没有任何第三方解析器。我只是添加了 System.Json dll 的引用,我得到了解析 json 的 JsonArray 类。

标签: c# json


【解决方案1】:

您可以使用替换功能删除反斜杠:

url = url.Replace("\\", "")

但也许你应该花一些时间弄清楚这些反斜杠是如何出现的。听起来您没有正确解析 JSON。你用的是什么解析器?

【讨论】:

  • +1 - 大胆猜测您问题的答案;我认为这里根本没有使用真正的 JSON 解析器 - 我无法想象任何自称为 JSON“解析器”的东西都无法读取字符串中的转义序列。
  • 我正在使用 JsonArray 类来解析 json,如下所示: JsonValue jasonValue = JsonArray.Parse(json); JsonValue 结果 = jasonValue["results"]; List 艺术家 = new List(); foreach(结果中的 JsonObject jsonArtist){ 艺术家艺术家 = 新艺术家();艺术家.CreatedByProfileImageUrl = jsonArtist["profile_image_url"].ToString();艺术家。添加(艺术家); }
  • 试试 System.Runtime.Serialization 中的 DataContractJSONSerializer - 它在序列化 JSON 方面做得更好 - 数组可能很棘手,但我通常可以让它以我扔给它的任何格式运行。
  • 是的,我也想使用 DataContractJSONSerializer,但我想为此分离创建类。而且我不想创建新类,我想使用现有的类,因此使用 foreach 循环来填充我的类的每个属性。
  • @Mark,谢谢,您的解决方案有效,但我确信解析器有问题,如果我发现有任何好处,我需要使用第三方解析器。不管怎么说,多谢拉。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
相关资源
最近更新 更多