2013-08-30 68 views
8

JsonSerializationException này được ném ra khi tôi đã cố gắng để nhập các thông số DateTime sau trong Json tôi:Lỗi chuyển đổi giá trị {rỗng} để gõ 'System.DateTime' trong json đầu vào

"Lỗi chuyển đổi giá trị {rỗng} để gõ 'System.DateTime' trong json đầu vào"

tôi đã đưa đầu vào ở đây:

string inputJSONString = "{....,\"StartDateFrom\":null,\"StartDateTo\":null,\"EndDateFrom\":null,\"EndDateTo\":null,\....}"; 

và deserialising sử dụng:

scT = (SearchCriteriaTask)JsonConvert.DeserializeObject(inputJSONString , typeof(SearchCriteriaTask)); 

Json của tôi là chính xác và tôi cũng đã thử ("") giá trị thay vì null. Tôi không thể tìm thấy giải pháp thích hợp ở nơi khác. Cảm ơn.

Nếu cần bất kỳ phần nào của mã, vui lòng đề cập đến mã đó.

Trả lời

22

Khi lỗi đang cố gắng cho bạn biết, các loại giá trị Net như DateTime không được giữ giá trị rỗng.

Nếu bạn muốn cho phép null, sử dụng các loại nullable:

DateTime? StartDateFrom { get; set; } 
+0

bây giờ tôi đã đến để biết về vấn đề này là như thế nào cơ bản! tôi không có ý tưởng nó được sử dụng một nullable như thế này. Tôi rất mới với nó. điều này làm việc. Cảm ơn –

+0

Nếu ai đó có câu hỏi là tại sao DateTime không thể rỗng, câu trả lời đó có thể được tìm thấy ở đây: http://stackoverflow.com/questions/689512/why-is-null-not-allowed-for-datetime- in-c –