Asp.net 如何强制netwtonsoft json序列化程序将datetime属性序列化为字符串?

Asp.net 如何强制netwtonsoft json序列化程序将datetime属性序列化为字符串?,asp.net,c#-4.0,json.net,Asp.net,C# 4.0,Json.net,我正在使用Newtonsoft的Json 当我序列化日期时间属性时,我得到的json响应如下: ..."CreatedOn":"\/Date(1317303882420+0500)\/",... 我希望它是一个简单的字符串 ..."createdOn": "2011-05-05 14:03:07", ... 当我的类属性是DateTime时,如何强制将其序列化为字符串,因为我们可以添加属性将属性名称更改为 [JsonProperty("id")] public int P

我正在使用Newtonsoft的Json 当我序列化日期时间属性时,我得到的json响应如下:

..."CreatedOn":"\/Date(1317303882420+0500)\/",...
我希望它是一个简单的字符串

..."createdOn": "2011-05-05 14:03:07", ...
当我的类属性是DateTime时,如何强制将其序列化为字符串,因为我们可以添加属性将属性名称更改为

  [JsonProperty("id")]
        public int ProductID { get; set; }

有没有类似的方法来强制DateTime属性序列化为string???

来自James Newton King在StackOverflow上发表的一篇文章,看起来您可以做到这一点

string isoJson = JsonConvert.SerializeObject(this, new IsoDateTimeConverter());
// {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"}    
参考答案:

这里还有关于Json.NET的文档和日期:

下面是使用
DateTimeFormat
属性自定义输出的示例:

return JsonConvert.SerializeObject(this, Formatting.None, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });

请提供您正尝试反序列化的JSON对象。请注意,从JSON.NET 4.5开始,日期默认使用ISO 8601格式写入(ISO 8601格式字符串:“2009-02-15T00:00:00Z”)thanx作为响应。。。这很酷,很管用。。但事实上,我需要将日期时间设置为“LogDate”:“2009-02-15 00:00:00”不在日期和时间之间。请查看文章最后一个链接中的文档。它说:“IsoDateTimeConverter类有一个属性DateTimeFormat,用于进一步自定义格式化字符串。”尝试摆弄它。有没有办法装饰我的MVC模型类属性,以便Newtonsoft.Json使用首选的日期时间格式?或者可以在全局级别指定转换器,以便我的整个WebApi稳定控制器使用所需的日期格式序列化具有日期属性的所有模型?好的。刚才解决了:WebApiConfig.Register方法,添加了这一行:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.DateFormatString=“dd/MM/yyyy”是的,它应该是HH,因为没有tt来指示AM或PM。我试图编辑以修复它,但BS规则只接受六个字符或更多的编辑,所以我没有浪费时间去想再编辑四个字符。