2013-02-02 12 views
5

TP Açma Hizmetinin XML Yanıtını JSON biçimine dönüştüren bir web hizmeti yazdım. WCF'ye yeni yazıyor ve Webservice yazıyor. Ancak dönüştürülen JSON biçimi aşağıdaki gibi görüntülenir.Nasıl C# JSON Yanıt Geri Slashes çıkarmak için?

"{ \"data\": { \"current_condition\": [ {\"cloudcover\": \"25\", \"humidity\": \"48\", \"observation_time.. 

Bu eğik çizgileri ve kodlarım şu ana kadar nasıl kaldırılır.

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; 
     } 

Daha fazla bilgiye ihtiyacınız varsa lütfen bana bilgi verin.

+0

bahsediyorsun dize result2 mı \\\ sonra lütfen değiştirin içeriyorsa? Geri dönüş sonucu tahmin ediyorum.İyi (@ "\", ""); –

+2

bu sadece hata ayıklamadan kopyalanır/yapıştırılır mı? Ters eğik çizgi karakterler sadece – mihail

+0

@ofstream karakterlerinden kaçıyor gibi görünüyor, denedim ama sonuçta hiçbir değişiklik. – Thiri

cevap

3

Bence JSON'unuz iyi, ters eğik çizgi insanların söyledikleri alıntılardan kaçıyor. Aşağıdaki kod bazı geçerli XML'i gösteriyor - > Json dönüştürme. Eğer hata ayıklama modunda görüntülemek varsa, ters eğik çizgi göreceksiniz, ancak çıkış Json geçerlidir

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); 

(Json.NET kullanma).

çıktı

{"note":{"to":"Tove","from":"Jani","heading":"Reminder","body":"Don't forget me this weekend!"}} 
+0

Örnek örnek için teşekkürler.Ödeme türünü akışa değiştirdim.Şimdi çalışıyorum – Thiri

+0

@Thiri Bu eski bir soru ama aynı sorunu yaşıyor gibi görünüyor.Ne demek "dönüş türünü akışına değiştirdi" ile ne demek istiyorsunuz? – craftworkgames

3

Dizinizde ters eğik çizgiler olduğundan emin misiniz? Bana göre onlar kaçış karakterleri gibi görünüyor çünkü "string'inizde karakterler var.

+0

Evet. Yine de bu ters eğik çizgileri kaldırmak için zaten var mı JSON biçimine dönüştürmek? – Thiri

+2

Sadece kaçış karakteriyse, gerçekten dizgede değiller. Sadece bir dizede özel karakterleri gömme C# yoludur. \ n gibi \ n yeni bir satır anlamına gelir. File.WriteAllText() kullanabilirsiniz diske dize yazmak ve Notepad ile görmek gerçekten orada ne var – Maurice

+0

Çok teşekkürler .. Bu mantıklı… – Thiri

0
str = JToken.Parse(your string).ToString(); 
+0

Lütfen cevaplarınızı yorumlayın ya da silinmesi için önerilmesi muhtemeldir. –

+0

Bu benim için çalıştı. –

0

dinlenme hizmeti süresi: System.Net.WebUtility.HtmlEncode (JsonString);

Yanıt süresi: System.Net.WebUtility.HtmlDecode (JsonString);

senin deşifre kod, bu dize \\"

İlgili konular