将NULL值的动态化JSON用于输出缓冲区C#

时间:2017-05-31 00:05:57

标签: c# json ssis .net-4.0 script-component

我正在尝试返回类似于以下内容的JSON数据集。让我告诉我,我只限于Visual Studio 2010和.NET 4.0。如何输出NULL或转换为空白?

  "Application": {
  "AppID": 3119385,
  "ReportID": 4171130,
  "AppReference": "Doran 23-Nov-16 10:46:59AM",
  "CreateDT": "2016-11-23 10:48:38.5800000",
  "ClientName": "GoGetta Brisbane",
  "StoreName": "Brokers",
  "Email": "",
  "StoreCode": "GGT08",
  "AppShortReference": "02",
  "ClientNameShort": "GGT Bris",
  "StoreNameShort": "GGT08",
  "VerifyEmployer": null,
  "VerifyAmount": null,
  "VerifyFrequency": null,
  "VerifyWeekday": null,
  "LocalityCode": "en_AU",
  "TemplateReportID": 12,
  "daysRange": 90,
  "templateReportName": "Enhanced Income Liabilities Full Report",
  "isReportGraphEnabled": 1,

我正在尝试将其处理为SSIS中脚本组件的输出缓冲区。但是,尽管检查了它,我仍然会收到“无法将null转换为值类型”错误。

  if (String.IsNullOrEmpty(rptContentOutput.Applications.Application.VerifyEmployer) == true)
            {
                ApplicationDetailsBuffer.VerifyEmployer = "";
            }
            else
            {
                ApplicationDetailsBuffer.VerifyEmployer = rptContentOutput.Applications.Application.VerifyEmployer;
            }

我的课程定义如下。

public class Application
{
    [JsonProperty("AppID")]
    public int? AppID { get; set; }
    [JsonProperty("ReportID")]
    public int? ReportID { get; set; }
    [JsonProperty("AppReference")]
    public string AppReference { get; set; }
    [JsonProperty("CreateDT")]
    public string CreateDT { get; set; }
    [JsonProperty("ClientName")]
    public string ClientName { get; set; }
    [JsonProperty("StoreName")]
    public string StoreName { get; set; }
    [JsonProperty("Email")]
    public string Email { get; set; }
    [JsonProperty("StoreCode")]
    public string StoreCode { get; set; }
    [JsonProperty("AppShortReference")]
    public string AppShortReference { get; set; }
    [JsonProperty("ClientNameShort")]
    public string ClientNameShort { get; set; }
    [JsonProperty("StoreNameShort")]
    public string StoreNameShort { get; set; }
    [JsonProperty("VerifyEmployer")]
    public string VerifyEmployer { get; set; }
    [JsonProperty("VerifyAmount")]
    public double VerifyAmount { get; set; }
    [JsonProperty("VerifyFrequency")]
    public string VerifyFrequency { get; set; }
    [JsonProperty("VerifyWeekday")]
    public string VerifyWeekday { get; set; }
    [JsonProperty("LocalityCode")]
    public string LocalityCode { get; set; }
    [JsonProperty("TemplateReportID")]
    public int? TemplateReportID { get; set; }
    [JsonProperty("daysRange")]
    public int? daysRange { get; set; }
    [JsonProperty("templateReportName")]
    public string templateReportName { get; set; }
    [JsonProperty("isReportGraphEnabled")]
    public string isReportGraphEnabled { get; set; }

}

1 个答案:

答案 0 :(得分:1)

好的,我误读了之前评论的代码,但我现在看到了。

问题是:

public double VerifyAmount { get; set; }

是一个值类型,JSON包含:

"VerifyAmount": null,

导致错误。修复是:

public double? VerifyAmount { get; set; }