web-dev-qa-db-ja.com

netwtonsoft json serializerにdatetimeプロパティを文字列にシリアル化させる方法は?

日時プロパティをシリアル化するとき、NewtonsoftのJsonを使用しています。jsonの応答は次のようになります。

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

私はそれを単純な文字列にしたい

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

私のクラスプロパティはDateTimeですが、プロパティ名を変更する属性を追加できるので、どのように文字列として強制的にシリアル化することができますか

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

dateTimeプロパティを強制的に文字列にシリアル化する同様の方法はありますか?

40
vakas

ジェームズ・ニュートン・キングがStackOverflowで行った投稿から、これができるように見えます。

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

参考回答: NewtonsoftのJSON SerializerからJSON DateTimeを解析する

また、Json.NETと日付に関するドキュメントもあります。 JSONで日付をシリアル化する

DateTimeFormatプロパティを使用して出力をカスタマイズする例を次に示します。

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