小编iSh*_*ode的帖子

反序列化DateTime类型的对象时出错 - 不是以'//Date('和以')结尾,而是以JSON的需要开头

我有稳定的web-api解决方案,我正在使用HttpWebRequest从MVC控制器访问api方法.GET和POST在没有Date Time对象的情况下工作正常.但是当从web api返回的数据有Date时,我得到的误差低于此

"将Contracts.AppointmentInfo []类型的对象反序列化时出错.日期时间内容'2014-09-18T11:00:00'不以'/ Date('和'以'结尾'开头,如JSON所要求的那样"

我已经删除了这个链接 DataContractJsonSerializer - 在List <object>中反序列化DateTime 但它们引用转换对象列表,但在我的情况下,我有来自HttpWebRequest的响应.

这是我的代码,inputSerializer输入到web api方法并且工作正常,但outputSerializer失败,因为它在结果集中有DateTime.

var request = (HttpWebRequest)HttpWebRequest.Create(endpoint);
request.Accept = "application/json";
request.ContentType = "application/json";
request.Method = method;
var inputSerializer = new DataContractJsonSerializer(typeof(T));
var outputSerializer = new DataContractJsonSerializer(typeof(T[]));

var requestStream = request.GetRequestStream();
inputSerializer.WriteObject(requestStream, pun);
requestStream.Close();

var response = request.GetResponse();
if (response.ContentLength == 0)
{
     response.Close();
     return default(T[]);
 }

 var responseStream = response.GetResponseStream();
 var responseObject = (T[])outputSerializer.ReadObject(responseStream);
        responseStream.Close();
        return responseObject;
Run Code Online (Sandbox Code Playgroud)

我也尝试从HttpWebRequest读取响应,如下所示,但不起作用

byte[] bytes = new byte[response.ContentLength];
responseStream.Read(bytes, 0, bytes.Length);
string output = …
Run Code Online (Sandbox Code Playgroud)

c# serialization json json.net

5
推荐指数
0
解决办法
4935
查看次数

标签 统计

c# ×1

json ×1

json.net ×1

serialization ×1