2013-04-13 29 views
6

Tại sao ServiceStack.Text DeserializeFromString không thể chuyển đổi định dạng ISODate.ServiceStack.Text và ISODate ("")

Ví dụ, tôi có chuỗi json như

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

và lớp

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

và khi tôi cố gắng để deserialize từ chuỗi

JsonSerializer.DeserializeFromString<TestClass>(json); 

cho tôi ra như enter image description here

+1

Có thể không mong đợi từ 'ISODATE' ở đó. Hãy thử '{" Count ": 4," Type ": 1," Date ":" 2013-04-12T00: 00: 00Z "}' – alex

Trả lời

1

JSON hy vọng định dạng ngày như thế này

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

Vì vậy, thay đổi bạn hẹn hò với giá trị trong Json chuỗi và sau đó thử. nó sẽ deserialized tài sản đó đúng cách.

+0

JSON không có định dạng ngày, Ecma 6 và 5.1! ISO8601 được đặt làm chuẩn mặc định mới. – Remco

19

ServiceStack.Text cũng hiểu ISO8601.

Bạn có thể cấu hình nó như hành vi mặc định với:

JsConfig.DateHandler = JsonDateHandler.ISO8601; 

Xem this answer để biết thêm thông tin.

+2

JsonDateHandler đã được đổi tên thành DateHandler –

Các vấn đề liên quan