Моя первая попытка и десериализация JSON, и я застрял, просто интересно, не могли бы вы помочь?
У меня есть следующий JSON
{
"summary":{
"pricing":{
"net":988,
"tax":13,
"gross":729
},
"status":{
"runningfor":29881175,
"stoppedfor":88805,
"idlefor":1298331744
}
}
}
вот мой код c #
private void MakeRequest()
{
HttpWebRequest request = WebRequest.Create(Url) as HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = new NetworkCredential(Username, Password);
request.Headers.Add(string.Format("App-Key: {0}", ApiKey));
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string resutls = reader.ReadToEnd();
Response.Write(resutls);
Status status = JSONHelper.JsonDeserialize<Status>(resutls);
Response.Write(status.RunningFor);
}
}
public class JSONHelper
{
/// <summary>
/// JSON Deserialization
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
T obj = Activator.CreateInstance<T>();
MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
obj = (T)serializer.ReadObject(ms);
ms.Close();
return obj;
}
}
[DataContractAttribute(Name = "status")]
public class Status
{
[DataMember(Name = "runningfor")]
public int RunningFor{ get; set; }
[DataMember(Name = "stoppedfor")]
public int StoppedFor{ get; set; }
[DataMember(Name = "idlefor")]
public int IdleFor{ get; set; }
}
И меня интересует только результат статуса, больше ничего. что я делаю не так, так как он возвращает только 0 для RunningFor.
Заранее спасибо