2017-05-31 87 views
1

我试图返回一个如下所示的JSON数据集。让我告诉我说我仅限于Visual Studio 2010和.NET 4.0。我怎么输出NULL或转换为空白?对输出缓冲区C使用NULL值解除分解的JSON#

"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; } 

}

+0

您不指定什么是“VerifyFrequency” - 是那些类或结构? – LB2

+0

@ LB2你是什么意思。我还没有输出,因为我可以得到第一个值。 –

+0

也许我误解了这个问题:你想要序列化成JSON,还是从JSON反序列化? – LB2

回答

1

好吧,我误解与之前评论的代码,但现在我明白了。

的问题是:

public double VerifyAmount { get; set; } 

这是一个值类型和JSON包含:

"VerifyAmount": null, 

这将导致错误。修复程序是:

public double? VerifyAmount { get; set; } 
+0

谢谢!我一直在看这几个小时,但明确地集中在等式的错误结尾。我虽然因为没有输出它而没有被使用。 –