1
我目前使用的是DataContractJsonSerializer
类,但我无法将日期如12/19/2013 12:00:00 AM
转换为C#DateTime
对象。如何使用DataContractJsonSerializer序列化“2013年12月19日12:00:00 AM”在C#上的DateTime类型
是我得到的错误说:
有反序列化 型Uptivity.achievement的对象错误。 DateTime content '12/19/2013 12:00:00 AM' 不是以JSON所需的'Date('和以')'结尾开始。
在:
public static T DeserializeJSon<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(stream);
return obj;
}
我一直在试图定义日期时间格式是这样的:
public static T DeserializeJSon<T>(string jsonString)
{
var settings = new DataContractJsonSerializerSettings
{
DateTimeFormat = new System.Runtime.Serialization.DateTimeFormat("G")
};
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T),settings);
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(stream);
return obj;
}
但现在我收到:
有错误反序列化 Uptivity.achievement类型的对象。字符串未被识别为有效的日期时间。
另外这个12/19/2013 12:00:00 AM
格式如Date是JSON提供者正在传递的格式。
任何想法?
这将有助于如果你包括你已经尝试过。您是否尝试更正此问题:'/ Date('并以')/'结尾,如JSON所需。 – LVBen 2014-09-22 18:37:04
谢谢,我将尽快更新我的文章。 – user3149931 2014-09-22 18:39:27
http://stackoverflow.com/questions/14640096/datacontractjsonserializer-date-serialization – MethodMan 2014-09-22 18:39:29