将值{null}转换为类型’System.DateTime’Json Response VB.NET时出错

Error converting value {null} to type 'System.DateTime' Json Response VB.NET

我正在尝试使用jsonConvert.DeserializeObject来解析我从Web服务返回的JSON响应。我有这个服务的XSD模式文件,我通过.NET转换器工具运行它来生成一个类。除下面的字段外,其他所有内容都工作得很好。我得到标题中的错误。它只发生在日期数组上,返回空值的单个日期工作正常,并且由于启用了NullValueHandling而被跳过。忽略设置。有人知道我如何使用json.net跳过数组中的这些空日期吗?事先谢谢!

json响应:"thedatesreurned":[空,空,空,空,空,空],

1
2
3
4
5
6
7
8
9
10
11
 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为他们做这件事。他们可以将nillable="true"添加到xsd文件中的字段中

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

然后,它将用这个生成类,这个类应该处理这个问题。

1
Private TheDatesReturnedField() As System.Nullable(Of Date)


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