首页 > 解决方案 > 无法在 C#.net 中的模型类中绑定数据,将动态数据绑定到字段时出错

问题描述

嗨,我无法在 C# 类字段中绑定数据.. 出现错误“对象引用未设置为对象的实例”。这是我的 C# 类,如下所示:

public partial class AccessCodeReqBody
    {
        [JsonProperty("scenarioKey")]
        public string ScenarioKey { get; set; }

        [JsonProperty("destinations")]
        public Destination[] Destinations { get; set; }

        [JsonProperty("whatsApp")]
        public WhatsApp WhatsApp { get; set; }
    }

    public partial class Destination
    {
        [JsonProperty("to")]
        public To To { get; set; }
    }

    public partial class To
    {
        [JsonProperty("phoneNumber")]
        public string PhoneNumber { get; set; }
    }

    public partial class WhatsApp
    {
        [JsonProperty("templateName")]
        public string TemplateName { get; set; }

        [JsonProperty("templateData")]
        public string[] TemplateData { get; set; }

        [JsonProperty("language")]
        public string Language { get; set; }
    }

&请求json如下:

{
   "scenarioKey":"696BDB51C0ACF9E65B86D3E1D08A0084",
   "destinations":[
      {
         "to":{
            "phoneNumber":"919910666888"
         }
      }
   ],
   "whatsApp":{
      "templateName":"access_code",
      "templateData":[
         "Jennifer",
         "Demo",
         "123456"
      ],
      "language":"en"
   }
}

&在c#类中绑定数据的代码如下,我在绑定电话号码和模板名称时遇到错误:

            AccessCodeReqBody reqbody = new AccessCodeReqBody();
            reqbody.ScenarioKey = "51F5865AE296FAE86614EED";

           

            reqbody.Destinations.To.PhoneNumber = text1;
            reqbody.WhatsApp.TemplateName = "access_code";
            reqbody.WhatsApp.Language = "en";
            reqbody.WhatsApp.TemplateData = GetData(text2.ToString());

提前致谢。

标签: c#jsonclass

解决方案


似乎是一个足够简单的解决方案

AccessCodeReqBody reqbody = new AccessCodeReqBody();
reqbody.ScenarioKey = "51F5865AE296FAE86614EED";

// Initialize your WhatsApp object. It is null if you don't
reqbody.WhatsApp = new WhatsApp();
//reqbody.Destinations.To.PhoneNumber = text1;
reqbody.WhatsApp.TemplateName = "access_code";
reqbody.WhatsApp.Language = "en";
reqbody.WhatsApp.TemplateData = GetData(text2.ToString());

推荐阅读