Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#类的嵌套JSON数组_C#_Json - Fatal编程技术网

C#类的嵌套JSON数组

C#类的嵌套JSON数组,c#,json,C#,Json,我试图为我正在编写的API传递一个JSON字符串。以下是JSON帖子的样子: {"AssociatedApplication":"Postman", "Key":"a274e012c52d4121bda7d1e7a7218cf5", "Subject":"Testing API", "Body":"Testing email API. Muffins.", "EmailAddresses":[ {"From":"apihelp@test.com"}, {"To":"tus@tes

我试图为我正在编写的API传递一个JSON字符串。以下是JSON帖子的样子:

{"AssociatedApplication":"Postman", "Key":"a274e012c52d4121bda7d1e7a7218cf5", "Subject":"Testing API", "Body":"Testing email API. Muffins.",
"EmailAddresses":[
    {"From":"apihelp@test.com"},
    {"To":"tus@test.com"},
    {"To":"sam.am@test.com"},
    {"Cc":"sam.am2@test.com"},
    {"Bcc":"sam.am3@test.com"}
]
}
使用JSON2Csharp,我将我的类设置为

[NotMapped]
class EmailTransmission
{
    public string AssociatedApplication;
    public string Key;
    public string Subject;
    public string Body;
    public List<EmailAddress> EmailAddresses;
}

[NotMapped]
public class EmailAddress
{
    public string From { get; set; }
    public string To { get; set; }
    public string Cc { get; set; }
    public string Bcc { get; set; }
}
[未映射]
类电子邮件传输
{
公共字符串关联应用程序;
公共字符串密钥;
公共字符串主题;
公共机构;
公开名单电邮地址;
}
[未映射]
公共类电子邮件地址
{
来自{get;set;}的公共字符串
{get;set;}的公共字符串
公共字符串Cc{get;set;}
公共字符串Bcc{get;set;}
}

当我使用
JsonConvert.DeserializeObject(email[“EmailAddresses”])
时,它不起作用,我尝试了
List
List等等。如果没有运行时类型绑定器异常,我应该使用什么类型?

如果这实际上是您的代码,那么您应该使用
电子邮件传输中的属性,而不是字段

其次,您的类
电子邮件传输
需要公开

最后,您应该反序列化整个对象,然后取出您需要的内容

JsonConvert.DeserializeObject<EmailTransmission>(email);
JsonConvert.DeserializeObject(电子邮件);

一旦反序列化了整个json字符串,就可以提取电子邮件地址。

如果这实际上是您的代码,您应该使用
电子邮件传输中的属性,而不是字段

其次,您的类
电子邮件传输
需要公开

最后,您应该反序列化整个对象,然后取出您需要的内容

JsonConvert.DeserializeObject<EmailTransmission>(email);
JsonConvert.DeserializeObject(电子邮件);

一旦反序列化了整个json字符串,就可以提取电子邮件地址。

请按如下所示更改电子邮件传输类

[NotMapped]
class EmailTransmission
{
    public string AssociatedApplication { get; set; }
    public string Key { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
    public List<EmailAddress> EmailAddresses { get; set; }
}
[未映射]
类电子邮件传输
{
公共字符串关联应用程序{get;set;}
公共字符串密钥{get;set;}
公共字符串主题{get;set;}
公共字符串体{get;set;}
公共列表电子邮件地址{get;set;}
}

请更改您的电子邮件传输类别,如下所示

[NotMapped]
class EmailTransmission
{
    public string AssociatedApplication { get; set; }
    public string Key { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
    public List<EmailAddress> EmailAddresses { get; set; }
}
[未映射]
类电子邮件传输
{
公共字符串关联应用程序{get;set;}
公共字符串密钥{get;set;}
公共字符串主题{get;set;}
公共字符串体{get;set;}
公共列表电子邮件地址{get;set;}
}

@Dreamcasting很乐意帮忙@很高兴为您提供帮助!