2016-02-11 39 views
0

我想使用JsonConvert.DeserializeObject来解析我从Web服务回来的JSON响应。我有服务的XSD架构文件,我通过.net转换器工具运行以创建一个类。除了下面的字段,其他一切都完美无缺。标题中出现错误。它只发生在Array的日期中,具有空返回值的单个日期完美无缺,并且由于打开了NullValueHandling.Ignore设置而被忽略。有谁知道我可以如何使用JSON.NET跳过数组中的这些空日期吗?提前致谢!错误转换价值{空}键入'System.DateTime'Json响应VB.NET

JSON响应: “TheDatesReturned”:[NULL,NULL,NULL,NULL,NULL,NULL],

Private TheDatesReturnedField() As Date 

<System.Xml.Serialization.XmlElementAttribute("TheDatesReturned", DataType:="date")> _ 
Public Property TheDatesReturned() As Date() 
    Get 
     Return Me.TheDatesReturnedField 
    End Get 
    Set(value As Date()) 
     Me.TheDatesReturnedField= value 
    End Set 
End Property 

注意:它更改为一个字符串数组修复它为好,但那么它们当我确实得到回应时,不再正确键入。

编辑:

如果任何人遇到这种并想知道如何得到XSD.EXE来为他们做。他们可以在XSD文件

<xsd:element maxOccurs="6" minOccurs="0" name="TheDatesReturned" type="xsd:date" nillable="true"> 

这增加的nillable =“真”到外地,然后将生成这个类,它应该把这个问题的关心。

Private TheDatesReturnedField() As System.Nullable(Of Date) 
+4

可能是因为DateTime不是可空类型?尝试使用'DateTime?'作为类型。 – Sam

+0

[DateTime“null”value]的可能重复(http://stackoverflow.com/questions/221732/datetime-null-value) – Gabe

+0

@Sam谢谢你为我做的。太糟糕了XSD.exe不能使用DateTime?作为默认类型。不知道我怎样才能将您的评论标记为答案,但是这对我来说确实如此。谢谢! –

回答

0

可能是因为DateTime不是可空类型?尝试使用DateTime?作为类型。

+0

谢谢@Sam !!!! –

+0

@try_automation没问题! – Sam