C# 通过反序列化的JSON数据进行解析
我是C#的新手。我用一个简单的控制台应用程序成功地使用了Mailchip API。我正在拉入相关数据,并成功地对返回的数据使用了JSON反序列化程序(Newtonsoft.JSON via NuGet)。我需要找到的是将数据放入变量中的最佳方法,然后将变量传递给存储过程以保存数据。我知道SQL,知道如何将变量传递到C#(连接字符串等)中的存储过程 我不知道的是如何解析反序列化的数据,然后将每个值放入变量或可以传递给SQL的东西中。我知道这是一个模糊的问题,所以这里是当前的代码 类mailClient.cs:C# 通过反序列化的JSON数据进行解析,c#,sql,C#,Sql,我是C#的新手。我用一个简单的控制台应用程序成功地使用了Mailchip API。我正在拉入相关数据,并成功地对返回的数据使用了JSON反序列化程序(Newtonsoft.JSON via NuGet)。我需要找到的是将数据放入变量中的最佳方法,然后将变量传递给存储过程以保存数据。我知道SQL,知道如何将变量传递到C#(连接字符串等)中的存储过程 我不知道的是如何解析反序列化的数据,然后将每个值放入变量或可以传递给SQL的东西中。我知道这是一个模糊的问题,所以这里是当前的代码 类mailClie
//Declare the 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 the Json String
MailChimpData data = JsonConvert.DeserializeObject<MailChimpData>(content);
}
公共类邮件数据
{
因此,当我运行此程序并查看VS2013的自动窗口时,我看到:
成员:Count=4系统.集合.通用.列表[0]{MailChimpAPI.Member}MailChimpAPI.Member
\u链接:Count=8系统.集合.通用.列表
电子邮件地址:此处的电子邮件地址字符串
电子邮件\u客户端:字符串
电子邮件类型:html字符串
id:(此处为id)字符串
ip\u选项:(此处为ip)字符串
ip\u注册:string
语言:字符串
上次更改:9/16/15 19:31字符串
列表\u id:(此处为列表id)字符串
位置:{MailChimpAPI.location}MailChimpAPI.location
会员评分:3 int
合并_字段{MailChimpAPI.MergeFields}MailChimpAPI.MergeFields
stats:{MailChimpAPI.stats}MailChimpAPI.stats
状态:未订阅字符串
时间戳\u选项:9/16/15 19:26字符串
时间戳\u注册:字符串
唯一的\u电子邮件\u id:(此处为唯一的电子邮件id)字符串
vip:FALSE bool
[1] {MailChimpAPI.Member}:MailChimpAPI.Member
[2] {MailChimpAPI.Member}:MailChimpAPI.Member
[3] {MailChimpAPI.Member}:MailChimpAPI.Member
原始视图
所以对于每个成员(0-3),我需要将每个字段值(粗体的字段名)拉入一个变量并保存到数据库中。我只是不知道如何解析每个成员 我知道对于一个简单的C#问题来说,这是一个很长的问题,但是如果你还记得我在文章开头说的“我是C#新手”的话
提前感谢。您能否使用
ForEach
循环遍历成员
并将其逐个保存在数据库中?另外,请在将来为您的成员命名:)您的问题可能没有被正确的人看到。您已将其标记为“json”和“mailchimp”,但是,您已经成功地反序列化了JSON,不需要任何帮助。相反,您想问一个问题,如“如何在c#中向sql数据表插入数据”,但您需要告诉我们您正在使用的数据库以及您迄今为止尝试过的内容。请参阅示例或。建议您删除/重写您的问题。
[DataContract]
[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; }
}
class Program
{
static void Main(string[] args)
{
MailChimpApiClient.APIGet("Custom URL Here");
}
}