Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to force netwtonsoft json serializer to serialize datetime property to string?

I am using Newtonsoft's Json when i serialze a date time property i get the json response as:

..."CreatedOn":"\/Date(1317303882420+0500)\/",...

i want it to be in simple string as

..."createdOn": "2011-05-05 14:03:07", ...

while my class property is DateTime, how can i force to serialze it as string, as we can add attribute to change the property name as

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

is there a similar way to force a DateTime property to serialize to string??

like image 210
vakas Avatar asked Oct 06 '11 05:10

vakas


1 Answers

From a post made by James Newton-King on StackOverflow, it looks like you can do this.

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

Referenced answer: Parsing JSON DateTime from Newtonsoft's JSON Serializer

Also here is the documentation on Json.NET and dates: Serializing Dates in JSON

Here is an example of using the DateTimeFormat property to customize the output:

return JsonConvert.SerializeObject(this, Formatting.None, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
like image 71
James Roland Avatar answered Oct 23 '22 02:10

James Roland