[Solved] How to parse this http response in C#


Using JsonConvert deserialize it to dynamic as below or create a matching class structure and deserialize it to that.

using Newtonsoft.Json;
.....

string json = File.ReadAllText("data.txt");
var deserializedData = JsonConvert.DeserializeObject<dynamic>(json);

Using json2csharp your classes should look like:

public class Metrics
{
    public int blocks { get; set; }
    public int bounce_drops { get; set; }
    public int bounces { get; set; }
    public int clicks { get; set; }
    public int deferred { get; set; }
    public int delivered { get; set; }
    public int invalid_emails { get; set; }
    public int opens { get; set; }
    public int processed { get; set; }
    public int requests { get; set; }
    public int spam_report_drops { get; set; }
    public int spam_reports { get; set; }
    public int unique_clicks { get; set; }
    public int unique_opens { get; set; }
    public int unsubscribe_drops { get; set; }
    public int unsubscribes { get; set; }
}

public class Stat
{
    public string type { get; set; }
    public string name { get; set; }
    public Metrics metrics { get; set; }
}

public class RootObject
{
    public string date { get; set; }
    public List<Stat> stats { get; set; }
}

These generated classes can be improved – for example not storing the date in a string but a DateTime

string json = File.ReadAllText("data.txt");
RootObject deserializedData = JsonConvert.DeserializeObject<RootObject>(json);

6

solved How to parse this http response in C#