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

时间:2015-12-16 20:44:30

标签: c# asp.net json json.net

  

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

    "recipientSetInfos":    
     [
          {
            "recipientSetMemberInfos":          
            [
              {
                "fax": "",
                "email": ""
              }
            ],
            "recipientSetRole":         
            {
              "SIGNER": "enum",
              "APPROVER": "enum"
            },
            "signingOrder": 0
          }
        ]
  

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

   "recipientSetInfos": 
    [
      {
        "recipientSetMemberInfos": 
        [{

            "email": "def@gmail.com"
        }],
        "recipientSetRole": "SIGNER"
    }, {
        "recipientSetMemberInfos": [{

            "email": "abc@gmail.com"
        }],
        "recipientSetRole": "SIGNER"
    }],
  

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

        RecipientSetInfo rec_Info = new RecipientSetInfo();
        rec_Info.recipientSetMemberInfos = List_Emails;
        rec_Info.recipientSetRole = "SIGNER";
        List_Recipients.Add(rec_Info);
  

给出输出:

          {
            "recipientSetMemberInfos":
                [
                    {"email":"abc@ae.com"},
                    {"email":"def@gmail.com"},
                    {"email":"fgh@gmail.com"}
                ],
            "recipientSetRole":"SIGNER"
           }
  

但是使用这个逻辑,我没有得到所需的输出。它是   将所有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; }
    }
  

请建议??

1 个答案:

答案 0 :(得分:0)

您的问题是,您为每封电子邮件创建了一个 Select * FROM TXN,CHK WHERE TXN.CHK_ID = CHK.CHK_ID(+) and TXN.CURRENT = 'Y' and CHK.CURRENT(+) = 'Y' 而不是

以下内容将循环显示RecipientSetInfo集合,并将其添加到列表List_Emails

List_Recipients