2013-04-13 29 views
6

なぜServiceStack.Text DeserializeFromString can notはISODate形式を変換しますか?例えばServiceStack.TextおよびISODate( "")

、私が持っている

{ "Count" : 4, "Type" : 1, "Date" : ISODate("2013-04-12T00:00:00Z") } 

とクラス

public class TestClass 
{ 
    public int Count { get; set; } 
    public int Type { get; set; } 
    public DateTime Date { get; set; } 
} 

と私は、文字列から逆シリアル化しようとすると、

JsonSerializer.DeserializeFromString<TestClass>(json); 

enter image description here

のように私に出力を与えるようなJSON文字列
+1

おそらく 'ISODate'という単語がそこにあるとは思わないでしょう。 '' Count ":4、" Type ":1、" Date ":" 2013-04-12T00:00:00Z "}' – alex

答えて

1

JSONこの

"LastRequestTime":"\/Date(928129800000+0530)\/" 

のような日付形式はあなたがJson文字列の値を日付、次に試す変更期待しています。そのプロパティを適切に非直列化します。

+0

JSONには日付形式はありません。新しいデフォルト標準としてISO8601が設定されています。 – Remco

19

ServiceStack.TextもISO8601を理解しています。あなたがして、デフォルトの動作として、それを構成することができます

JsConfig.DateHandler = JsonDateHandler.ISO8601; 

は、より多くの情報のためthis answerを参照してください。

+2

JsonDateHandlerの名前がDateHandlerに変更されました。 –