我如何找到此问题的根源,其中日期值由
JavaScriptSerializer不能反序列化JavaScriptSerializer吗?

在调用应用程序中:

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反序列化呢?

最佳答案

如果模型的类型为Model,则尝试在对Deserialize的调用中指定类型。

string json = @"{'Guid':'guid','OrderNumber':'1','OrderDate':'\/Date(1299456000000)\/',
             'OrderStatus':'Completed','DiscountRate':0.0000}";
var serializer = new JavaScriptSerializer();
var model = serializer.Deserialize<Model>(json);

这样我就可以序列化和反序列化日期,而不会出现任何错误。

关于c# - JavaScriptSerializer.Deserialize不接受由JavaScriptSerializer.Serialize序列化的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8555329/

10-12 06:52