Как я могу найти источник этой проблемы, где значение даты, сериализованное JavaScriptSerializer не может быть десериализовано JavaScriptSerializer?JavaScriptSerializer.Deserialize не принимает дату, которая была сериализована JavaScriptSerializer.Serialize
В вызывающем приложении:
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(model);
// generates this json
{'Guid':'guid','OrderNumber':'1','OrderDate':'\/Date(1299456000000)\/',
'OrderStatus':'Completed','DiscountRate':0.0000}
В принимающем приложении:
string json = @"{'Guid':'guid','OrderNumber':'1','OrderDate':'\/Date(1299456000000)\/',
'OrderStatus':'Completed','DiscountRate':0.0000}";
var serializer = new JavaScriptSerializer();
var model = serializer.Deserialize(json);
Бросает String was not recognized as a valid DateTime
исключение.
Если дата сериализована JavaScriptSerializer, то почему она не может быть десериализована JavaScriptSerializer?
Вы видели этот родственный вопрос: http://stackoverflow.com/questions/1224793/javascript-serialization-of-datetime-in-asp-net-is-not-giving-a-javascript-date? –
Я читал это и много других вопросов, но до сих пор не понимаю, почему .NET не может десериализовать то, что было сериализовано .NET? И я все еще не уверен, что мне нужно делать. Клиентское приложение не мое, поэтому я не могу всегда говорить им, чтобы изменить, как они сериализуют его. –
Попробуйте вместо этого использовать 'System.Runtime.Serialization.Json.DataContractJsonSerializer'. Я просто попробовал, и у него не было проблем с сериализацией и десериализацией дат. – hawkke