Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中从JSON响应中删除反斜杠?_C#_Json_Wcf_Web Services_Rest - Fatal编程技术网

如何在C#中从JSON响应中删除反斜杠?

如何在C#中从JSON响应中删除反斜杠?,c#,json,wcf,web-services,rest,C#,Json,Wcf,Web Services,Rest,我编写了一个webservice,它将TP开放服务的XML响应转换为JSON格式。我对WCF和编写Web服务还不熟悉。 但是转换后的JSON格式显示如下 "{ \"data\": { \"current_condition\": [ {\"cloudcover\": \"25\", \"humidity\": \"48\", \"observation_time.. 到目前为止,如何删除这些反斜杠\和我的代码 public string checkweather(string q, st

我编写了一个webservice,它将TP开放服务的XML响应转换为JSON格式。我对WCF和编写Web服务还不熟悉。 但是转换后的JSON格式显示如下

"{ \"data\": { \"current_condition\": [ {\"cloudcover\": \"25\", \"humidity\": \"48\", \"observation_time..
到目前为止,如何删除这些反斜杠\和我的代码

   public string checkweather(string q, string num_of_day)
    {
         HttpWebRequest request=..;
               ...
        string Url = string.Format("http://free.worldweatheronline.com/feed/weather.ashx?q={0}&format={1}&num_of_days={2}&key={3}", q, format, num_of_days, key);
        HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(Url);
        Request.Method = "GET";

        using (HttpWebResponse response = (HttpWebResponse)Request.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {

                using (StreamReader reader = new StreamReader(stream))
                {
                    var result2=reader.ReadToEnd();
         }}}
          return result2;
         }

如果您需要更多信息,请通知我。

您确定字符串中有反斜杠吗?看起来它们是转义字符,因为字符串中有“字符”。

我认为您的JSON很好,反斜杠是转义引号,正如人们所说的。下面的代码显示了一些有效的XML->JSON转换。(使用JSON.NET)


休息服务时间:System.Net.WebUtility.HtmlEncode(JsonString)

响应时间:System.Net.WebUtility.HtmlDecode(JsonString)


如果您的解码代码包含此字符串
\\”
,请将
\\
替换为
\

,结果2是否就是您所说的字符串?我猜返回结果是2。替换(@“\”,“”);这只是从调试中复制/粘贴的吗?因为看起来反斜杠只是在逃避characters@ofstream,我尝试了,但结果没有改变。只需按原样对待Json,它们就可以逃逸
字符。在打印时,您总是会看到反斜杠,但效果很好。是的。在转换成JSON格式后,是否有必要删除这些反斜杠?如果它们只是转义字符,则它们实际上不在字符串中。这只是在字符串中嵌入特殊字符的C#方式。就像\n表示新行一样。您可以使用File.WriteAllText()将字符串写入磁盘,并使用记事本查看实际内容。非常感谢。。这很有道理。谢谢你的示例。我将返回类型更改为stream。我知道这是一个老问题,但我似乎也有同样的问题。你所说的“将返回类型更改为流”是什么意思?请评论你的答案,否则很可能会建议删除它们。这对我也很有效,不过可能需要一些上下文。如果你以前没有听说过JToken(我没有);它是Newtonsoft.Json库的一部分(可以通过Nuget轻松安装)
const string xml = "<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>";
XmlDocument node = new XmlDocument();
node.LoadXml(xml);

string json = JsonConvert.SerializeXmlNode(node);
{"note":{"to":"Tove","from":"Jani","heading":"Reminder","body":"Don't forget me this weekend!"}}
str = JToken.Parse(your string).ToString();