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

时间:2011-10-06 05:39:42

标签: 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 ProductID { get; set; }

是否有类似的方法强制DateTime属性序列化为字符串?

1 个答案:

答案 0 :(得分:64)

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

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

参考答案: Parsing JSON DateTime from Newtonsoft's JSON Serializer

此处还有关于Json.NET和日期的文档: Serializing Dates in JSON

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

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