4

DataContractJsonSerializer が日付をシリアル化する方法を変更する方法はありますか?

現在、日付を次のようなものに変換します。

{ "日付": "/日付(1260597600000-0600)/" }

人間が読める日付形式に変換したい。

openrasta フレームワークを使用して RestApi を構築しています。シリアライゼーション/デシリアライゼーションの前のある段階でJSON日時形式を人間が読める形式に変換するOperationInterceptorsを書くことはできますか?それとも他の方法がありますか?

4

2 に答える 2

1

最後に、この問題を以下のように処理しました(c#)

    [DataMember]
    public string Date { get; set; }

    [IgnoreDataMember]
    public DateTime? DateForInternalUse { get; set; }

    [OnSerializing]
    public void OnSerializing(StreamingContext context)
    {
      Date = (DateForInternalUse != null) ? ((DateTime)DateForInternalUse).ToString(DateTimeFormatForSerialization) : null;
    }

    [OnDeserialized]
    public void OnDeserialized(StreamingContext context)
    {
      try
      {
        DateForInternalUse = !String.IsNullOrEmpty(Date) ? DateTime.ParseExact(Date, DateTimeFormats, null, DateTimeStyles.None) : (DateTime?)null;
      }
      catch (FormatException)
      {
        DateForInternalUse = null;
      }
    }

この場合、web.config 内に保持している、サポートしたい形式を指定できます。

<add key="DateTimePattern" value="yyyy-MM-dd,yyyy-MM-dd hh:mm:ss zzz,yyyy-MM-dd hh:mm:ss" />

さらに明確にするために私に知らせてください。

于 2013-06-14T11:28:24.583 に答える