Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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#_Asp.net_Json_Json.net - Fatal编程技术网

C# 如何创建具有相同标头的多个JSON集

C# 如何创建具有相同标头的多个JSON集,c#,asp.net,json,json.net,C#,Asp.net,Json,Json.net,我有一个JSON,它在创建之前有以下模式 点击API,见下文 使用此预定义格式,我想创建多个签名者集, 如下图所示 我正在使用C#编程语言,如果我只是硬编码并发送的话。信息技术 工作,但如果我想动态创建。我怎样才能做到这一点。 目前,我正在使用这个像 其输出为: 但是使用这种逻辑,我没有得到想要的输出。它是 将所有3封电子邮件视为一封 只是想补充一点,在一个用户的帮助下,我试着把它编码出来 foreach (var email in List_Emails) { var rec_Info

我有一个JSON,它在创建之前有以下模式 点击API,见下文

使用此预定义格式,我想创建多个签名者集, 如下图所示

我正在使用C#编程语言,如果我只是硬编码并发送的话。信息技术 工作,但如果我想动态创建。我怎样才能做到这一点。 目前,我正在使用这个像

其输出为:

但是使用这种逻辑,我没有得到想要的输出。它是 将所有3封电子邮件视为一封

只是想补充一点,在一个用户的帮助下,我试着把它编码出来

foreach (var email in List_Emails)
{
    var rec_Info = new RecipientSetInfo();
    rec_Info.recipientSetRole = "SIGNER";
    List_Recipients.Add(rec_Info);
}
但问题仍然存在,因为“recipientSetInfos”有两个子类,即recipientSetRole和recipientSetMemberInfos,其中“recipientSetMemberInfos”有一个属性Email

所以,当我把这两个列表加在一起时,结果是空的

"recipientSetInfos":
[
    {"recipientSetMemberInfos":null,
     "recipientSetRole":"SIGNER"
    ‌​},
    {"recipientSetMemberInfos":null,
     "recipientSetRole":"SIGNER"
    }
]
我创建的两个元素的结构如下-

public class RecipientSetMemberInfo
    {
        public string email { get; set; }
    }

    public class RecipientSetInfo
    {
        public List<RecipientSetMemberInfo> recipientSetMemberInfos { get; set; }
        public string recipientSetRole { get; set; }
    }
公共类RecipientSetMemberInfo
{
公共字符串电子邮件{get;set;}
}
公共类RecipientSetInfo
{
公共列表recipientSetMemberInfos{get;set;}
公共字符串recipientSetRole{get;set;}
}
请建议


您的问题是,您为每封电子邮件创建了一个
收件人设置信息
,而不是一个

以下内容将循环浏览
List\u电子邮件
收集,并将它们添加到列表
List\u收件人

foreach (var email in List_Emails)
{
    var rec_Info = new RecipientSetInfo();
    rec_Info.recipientSetRole = "SIGNER";
    List_Recipients.Add(rec_Info);
}

谢谢你的快速回复,我也试过这种方法。当我合并这两个列表时出现的问题是,列表电子邮件会让我收到空电子邮件。如果我添加了quick watch&check,它确实有电子邮件值。请参阅下面的示例:“recipientSetInfos”:[{“recipientSetMemberInfos”:null,“recipientSetRole”:“SIGNER”},{“recipientSetMemberInfos”:null,“recipientSetMemberInfos”:null,“recipientSetRole”:“SIGNER”},{“recipientSetMemberInfos”:null,“recipientSetRole”:“SIGNER”}]您能完整发布
List\u电子邮件吗?
foreach(grd\u signers.Rows中的GridViewRow gridRow){TextBox Tb1=(TextBox)grd\u signers.Rows[rowIndex].Cells[1]。FindControl(“Tb\u电子邮件”);string Email=string.Empty;Email=Tb1.Text;RecipientSetMemberInfo rec_MemberInfo2=new RecipientSetMemberInfo();rec_MemberInfo2.Email=Email;List_Email.Add(rec_MemberInfo2);rowIndex++}
我的列表正在填写编辑您的帖子并将其添加到末尾,这样它将更具可读性,其他人也可以回答。首先,非常感谢您Orel。从3小时起,我就一直在为这个问题苦苦挣扎。你给我指出了正确的方向&我得到了我想要的东西。。我只是每次都要刷新邮件列表&在收件人之间创建新邮件。这样做用于删除一系列电子邮件,并为我获取所需的电子邮件索引。。再次感谢。。非常感谢……)
foreach (var email in List_Emails)
{
    var rec_Info = new RecipientSetInfo();
    rec_Info.recipientSetRole = "SIGNER";
    List_Recipients.Add(rec_Info);
}
"recipientSetInfos":
[
    {"recipientSetMemberInfos":null,
     "recipientSetRole":"SIGNER"
    ‌​},
    {"recipientSetMemberInfos":null,
     "recipientSetRole":"SIGNER"
    }
]
public class RecipientSetMemberInfo
    {
        public string email { get; set; }
    }

    public class RecipientSetInfo
    {
        public List<RecipientSetMemberInfo> recipientSetMemberInfos { get; set; }
        public string recipientSetRole { get; set; }
    }
foreach (var email in List_Emails)
{
    var rec_Info = new RecipientSetInfo();
    rec_Info.recipientSetRole = "SIGNER";
    List_Recipients.Add(rec_Info);
}