2013-04-13 16 views
6

Dlaczego ServiceStack.Text DeserializeFromString nie może konwertować formatów ISODate.ServiceStack.Text i ISODate ("")

Na przykład, mam json ciąg jak

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

i klasy

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

i gdy próbuję deserializowania z ciągiem

JsonSerializer.DeserializeFromString<TestClass>(json); 

dać mi wyjście jak enter image description here

+1

Prawdopodobnie nie oczekuje się tam słowa 'ISODate'. Spróbuj '{" Count ": 4," Type ": 1," Date ":" 2013-04-12T00: 00: 00Z "}' – alex

Odpowiedz

1

JSON spodziewa format daty jak to

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

Więc pan zmienić datę waluty w Json napisu, a następnie spróbuj. będzie poprawnie zserializował tę właściwość.

+0

JSON nie ma formatu daty, Ecma 6 i 5.1 to! Zestaw ISO8601 jako nowy standard domyślny. – Remco

19

ServiceStack.Text obsługuje także ISO8601.

można skonfigurować je jako domyślne zachowanie z:

JsConfig.DateHandler = JsonDateHandler.ISO8601; 

Zobacz this answer aby uzyskać więcej informacji.

+2

JsonDateHandler został przemianowany na DateHandler –

Powiązane problemy