简体   繁体   中英

c# json json.net parse to class

For some time I have a problem with the code. Trying to retrieve data from the API using the json but when trying to parse json and send it to the class I receives empty string.

The json data looks like this

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

... and this is my code:

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

You could use Newtosoft nugget package for this kind of parsing 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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM