2011-08-15 34 views
8

JSON dizemde şunun gibi görünüyor. Lütfen kaçış karakterleri olduğunu unutmayın.Bir Json dizesini ayrıştırmak için Newtonsoft.Json kullanılırken hata oluştu

string json = "\"{\\\"Status\\\":true,\\\"ID\\\":24501}\""; 

aşağıda belirtilen bir hata çalıştırmak aşağıdaki gibi ayrıştırma yöntemi kullanırken: JsonReader gelen JObject okuma

JObject o = JObject.Parse(json); 

hata. Geçerli JsonReader ürün bir nesnede değil: String

Bu hatadan nasıl kurtulurum yoksa json dizgimi ayrıştırmak ve değerleri almak için başka bir yöntem var mı?

+0

bu cevap yok, aynı prob bakacak m – 1Mayur

cevap

4

Kaldır ilk ve son tırnak:

string json = "{\"Status\":true,\"ID\":24501}"; 

Json biçimi here bakınız.

2

Nesnenin çift kodlanmış gibi görünüyor. Deneyin: biçimi böyle bir şey olmalı

string json = "{\"Status\":true,\"ID\":24501}"; 
+4

O json dizesi ben bir API aldığım şeydir. Kaçış karakterlerini nasıl kaldırabilirim? \ – SVI

+2

@SVI: Partiye geç kaldım, ancak herhangi birine ihtiyaç duyarsa, json.Replace ("\\\\", "\\") 'gibi bir şey kullanarak değiştirin. – SolarBear

0

burada: SolarBear onun yorumunda söylediği gibi

string jsonNew = @"{'Status': True,'ID': 24501 }"; 
1

Bu

json = json.Replace(@"\", string.Empty).Trim(new char[]{'\"'}) 
0

gibi bir şey gerekir, problem çift kaçan olduğunu .

böyle, uygun biçimi almak için:

string json = "{\"Status\":true,\"ID\":24501}"; 

böyle bir şey yapın:

json = json.Replace("\\\\", "\\"); 
0

bugün benzer bir sorunu vardı. Bu Benim çözüm (c# kullanarak) bu uzatma yönteminde bulunan:

public static class StringExtensions 
{ 
    public static string RemoveDoubleEncoding(this string text) 
    { 
     if(string.IsNullOrEmpty(text)) 
      return string.Empty; 
     var result = text.TrimStart('\"').TrimEnd('\"'); 
     result = result.Replace(@"\", string.Empty); 
     return result; 
    } 
} 
İlgili konular