2016-06-21 129 views
1

我有一段時間的代碼有問題。 嘗試使用json從API中檢索數據,但試圖解析json並將其發送到類時,我收到空字符串。c#json json.net解析到類

JSON數據看起來像這樣

{"Wynik":{"Token":"String","DataCzasWaznosci":"\/Date(-62135596800000-0000)\/"} 

...這是我的代碼:

public void post() 
{ 
    Autoryzacja_zaloguj a_zaloguj = new Autoryzacja_zaloguj(); 
    string url = a_zaloguj.Link; 
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 


    byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(a_zaloguj.Json); 
    req.Method = "POST"; 
    req.ContentType = "application/json"; 
    req.ContentLength = requestBytes.Length; 
    Stream requestStream = req.GetRequestStream(); 
    requestStream.Write(requestBytes, 0, requestBytes.Length); 
    requestStream.Close(); 

    HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 
    StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default); 

    string backstr = sr.ReadToEnd(); 
    dynamic d = JObject.Parse(backstr); 
    var wynik = d.Wynik; 
    string token = wynik.Token; 
    DateTime data = wynik.DataCzasWaznosci; 

    Wyniki wyniki = new Wyniki(); 
    wyniki.test = token; 

    sr.Close(); 
    res.Close(); 
} 

public class Wyniki 
{ 
    public string test { get; internal set; } 
} 
+0

您能否請您提供您正在接收的json樣本? – Filburt

+0

當然:{「Wynik」:{「Token」:「String」,「DataCzasWaznosci」:「\/Date(-62135596800000-0000)\ /」} –

回答

0

你可以使用Newtosoft金塊包這種解析 http://www.newtonsoft.com/json

public class Wynik 
{ 
    public string Token { get; set; } 
    public DateTime DataCzasWaznosci { get; set; } 
} 

/*Deserialization part */ 
string backstr = sr.ReadToEnd(); 
Wynikm = JsonConvert.DeserializeObject<Wynik>(backstr); 
+0

它不起作用。仍然在Messagebox中產生空的結果。 –

+0

您的輸出控制檯中是否有任何錯誤? – OrcusZ

+0

不只是空的Messagebox,這是我的代碼之後chenges:http://pastebin.com/uU2wHFuv –