大家。我有一个与json deserilizing(Newtonsoft.Json)相关的quastion。我不理解进程反序列化DateTime类型和日期时间格式化字符串,换句话说类型字符串,其中写的是这样的日期" 01.01.2000"在JObject中,这个字段是字符串。
例如:
[
{
"DateOfBirth": "10.02.1990",
"SomeString": "01.12.1888"
}
]
我使用下一个反序列化设置:
new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
MissingMemberHandling = MissingMemberHandling.Ignore,
DateParseHandling = DateParseHandling.None,
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateFormatString = "dd.MM.yyyy",
Converters = new List<JsonConverter>()
{
new StringEnumConverter(),
new IsoDateTimeConverter
{
DateTimeFormat = "dd.MM.yyyy"
}
},
Error = (sender, args) =>
{
args.ErrorContext.Handled = true;
},
}
默认情况下,我希望第一个字段反序列化为DateTime 10/02/1990 00:00:00,第二个字段反序列化为某个对象中的简单字符串。但事实并非如此。两个字段都转换为DateTime格式。 如果我在没有IsoDateTimeConverter的情况下设置DateParseHandling.None,则结果将是下一个:DateTime反序列化为空值,字符串将具有&#34; 01.12.1888&#34;。但如果我同时设置了这两个设置,那么一切正常。
有人可以解释这种情况吗?为了在不设置随机设置的情况下获得正确的结果并希望运气,我该怎么做?