我的api中有2个部分。一个是更新的东西,我想尽可能保持输出现代/标准。我还有一个遗留部分,必须与旧程序交谈,我无法修改。
旧程序希望日期采用这种格式。
"EndDateActual":"\/Date(1398272400000+0000)\/"
目前我以这种格式发送Date对象。
"EndDateActual":"2014-04-23T17:00:00Z"
日期作为字符串而不是DateTime从存储过程返回。
将哪个传递到使用[DataMember]
[DataContract]
属性修饰的Task对象。
我将所有内容作为IEnumerable传回,其中String实际上是一个日期,是Task对象的一个优点。
[DataContract()]
public class Task
{
[DataMember(Order = 1)]
public Guid Id { get; set; }
[DataMember(Order = 2)]
public string StartDateActual { get; set; }
[DataMember(Order = 3)]
public string StartDateProjected { get; set; }
[DataMember(Order = 4)]
public string EndDateActual { get; set; }
[DataMember(Order = 5)]
public string EndDateProjected { get; set; }
我还没设法让杀菌器工作。但是,由于EndDateActual是一个字符串,它会工作吗?
如果可能的话,我想让它以遗留对象的方式工作,以及api其余部分的标准方式,我猜这是默认的,所以我想避免全局选项。但是,我仍然是新手,所以如果我错了请纠正我。
提前致谢!
答案 0 :(得分:0)
您需要更新Json.NET的配置,以便它不使用默认的ISO日期转换器:
JsonSerializerSettings serializerSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
};
然后,您需要将这些设置传递给应用程序的配置,例如:
GlobalConfiguration.Configuration.Formatters[0] = new JsonNetFormatter(serializerSettings);