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不是可以为空的类型?尝试使用