在json.net中转换为DateTime

Nik*_*las 3 .net c# datetime json json.net

我正在尝试反序列化以下内容:

{"ts":"2012-04-22 04:14:50,669", "msg":"Hello"}
Run Code Online (Sandbox Code Playgroud)

public class LogEntry
{
    public DateTime Ts { get; set; }
    public string Msg { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

运用

var logEntry = JsonConvert.DeserializeObject<LogEntry>(line);
Run Code Online (Sandbox Code Playgroud)

但得到一个JsonSerializationException说"{"错误转换值\"2012-04-22 04:14:28,478 \"键入'System.DateTime'.第1行,第31位."}.我无法更改日志格式.

我想我可能需要使用Converter自己解析日期字符串.但是,我找不到任何相似的例子JsonConverter.具体如何读取来自该值readerReadJson方法.

有什么简单的例子我应该看一下吗?或者我是以错误的方式来做这件事的?

rav*_*ned 5

DateTime字符串上的格式使用逗号作为小数分隔符(,478).您可以使用适当的方法初始化JsonSerializerSettings对象(此处记录)Culture,然后使用DeserializeObject<T>(value, settings)(此处记录)进行反序列化.这将使用您指定的文化而不是默认来反序列化InvariantCulture.