【发布时间】:2014-09-22 18:35:05
【问题描述】:
我目前正在使用 DataContractJsonSerializer 类,但我无法将 12/19/2013 12:00:00 AM 之类的日期转换为 C# DateTime 对象。
我得到的错误是:
反序列化类型对象时出错 Uptivity.成就。 DateTime 内容 '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.成就。字符串未被识别为有效的日期时间。
此外,像 Date 这样的 12/19/2013 12:00:00 AM 格式是 json 提供程序提供的格式。
有什么想法吗?
【问题讨论】:
-
如果您包含您尝试过的内容会有所帮助。您是否尝试过更正此问题:'/Date(' 并以 ')/' 作为 JSON 的要求结尾。
-
谢谢,我会尽快更新我的帖子。
标签: c# json datacontractserializer