c# - Parse through deserialized JSON data -


i new c#. have consumed mailchip api simple console app. pulling in relevant data , have used json deserializer on returned data (newtonsoft.json via nuget). need find best way place data variables can pass stored procedure save data. know sql , know how pass variables stored procedure in c# (connection strings , such).

what don't know how parse through deserialized data , place each value variable or can pass sql. know vague question here current code.

class mailchimpapiclient.cs:

  //declare api key     public const string apikey = "my api key here";        public static void apiget(string url)     {          //syncronious consumption         var syncclient = new webclient();         syncclient.headers.add(apikey);         var content = syncclient.downloadstring(url);         //deseralize json string         mailchimpdata data = jsonconvert.deserializeobject<mailchimpdata>(content);       } 

class: mailchimpdata.cs:

 [datacontract] 

public class mailchimpdata {

    [datamember]     public list<unsubscribes> unsubscribes { get; set; }     [datamember]     public string campaign_id { get; set; }     [datamember]     public list<link2> _links { get; set; }     [datamember]     public int total_items { get; set; }     [datamember]     public link link { get; set; }     [datamember]     public mergefields mergefields { get; set; }     [datamember]     public stats stats { get; set; }     [datamember]     public location location { get; set; }     [datamember]     public list<member> members { get; set; }     [datamember]     public string list_id { get; set; }  }   //unsubscribe data public class link {     public string rel { get; set; }     public string href { get; set; }     public string method { get; set; }     public string targetschema { get; set; }     public string schema { get; set; } }  public class unsubscribes {      public string email_id { get; set; }     public string email_address { get; set; }     public string timestamp { get; set; }     public string reason { get; set; }     public string campaign_id { get; set; }     public string list_id { get; set; }     public list<link> _links { get; set; } }  public class link2 {     public string rel { get; set; }     public string href { get; set; }     public string method { get; set; }     public string targetschema { get; set; }     public string schema { get; set; } }   //list data public class mergefields {     public string fname { get; set; }     public string lname { get; set; } }  public class stats {     public double avg_open_rate { get; set; }     public int avg_click_rate { get; set; } }  public class location {     public double latitude { get; set; }     public double longitude { get; set; }     public int gmtoff { get; set; }     public int dstoff { get; set; }     public string country_code { get; set; }     public string timezone { get; set; } }   public class member {     public string id { get; set; }     public string email_address { get; set; }     public string unique_email_id { get; set; }     public string email_type { get; set; }     public string status { get; set; }     public mergefields merge_fields { get; set; }     public stats stats { get; set; }     public string ip_signup { get; set; }     public string timestamp_signup { get; set; }     public string ip_opt { get; set; }     public string timestamp_opt { get; set; }     public int member_rating { get; set; }     public string last_changed { get; set; }     public string language { get; set; }     public bool vip { get; set; }     public string email_client { get; set; }     public location location { get; set; }     public string list_id { get; set; }     public list<link> _links { get; set; } } 

program.cs:

 class program {     static void main(string[] args)     {                mailchimpapiclient.apiget("custom url here");        } } 

so when run , in autos window of vs2013 see this:

members: count = 4 system.collections.generic.list
[0] {mailchimpapi.member} mailchimpapi.member
_links: count = 8 system.collections.generic.list
email_address: email address here string
email_client: string
email_type: html string
id: (id here) string
ip_opt: (ip here) string
ip_signup: string
language: string
last_changed: 9/16/15 19:31 string
list_id: (list id here) string
location: {mailchimpapi.location} mailchimpapi.location
member_rating: 3 int
merge_fields {mailchimpapi.mergefields} mailchimpapi.mergefields
stats: {mailchimpapi.stats} mailchimpapi.stats
status: unsubscribed string
timestamp_opt: 9/16/15 19:26 string
timestamp_signup: string
unique_email_id: (unique email id here) string
vip: false bool
[1] {mailchimpapi.member}: mailchimpapi.member
[2] {mailchimpapi.member}: mailchimpapi.member
[3] {mailchimpapi.member}: mailchimpapi.member
raw view

so each member (0-3), need pull each fields value (field names in bold) variable , save database. don't know how parse through each member.

i know long question simple c# problem, if can remember way beginning of post stated "i new c#"

thanks in advance.


Comments