bst*_*ack 18 c# serialization json.net asp.net-web-api
所有,
我们正在使用ASP.NET Web API,我们有一个基于REST的服务,其中包含有效负载的JSON.如果我将以下日期作为字符串传递,例如
sampleObj: {
...
myDate: "31/12/2011 00:00:00",
...
}
Run Code Online (Sandbox Code Playgroud)
作为JSON有效内容中的属性值,date属性被反序列化为DateTime.MinValue.字符串格式有效吗?
我们知道格式"2012-10-17 07:45:00"成功序列化,但我们不能保证收到的所有日期都是这种格式.什么是有效的选择?
Mag*_*ing 46
在ASP.NET Web API中,您可以通过JsonFormatter的SerializerSettings添加不同的Json.NET DateTimeConverters,以使您的服务了解不同的DateTime格式.
但是,我认为Json.NET中没有默认的DateTimeConverter采用这种格式"31/12/2011 00:00:00".在这种情况下,您实现自定义DateTimeConverter.
WebApiConfig.cs:
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new MyDateTimeConverter());
Run Code Online (Sandbox Code Playgroud)
自定义DateTimeConverter:
public class MyDateTimeConverter : DateTimeConverterBase
{
//...
}
Run Code Online (Sandbox Code Playgroud)
有关如何编写自定义DateTimeConverter的更多信息,我在stackoverflow上发现了一些您可能会觉得有用的东西: 如何创建一个json.net Date to String自定义Converter.