C# 从JSON字符串中提取日期时间

C# 从JSON字符串中提取日期时间,c#,arrays,json,datetime,C#,Arrays,Json,Datetime,我有一个字符串: var myJson ="[\r\n \"2018-08-14\",\r\n \"2018-08-30\",\r\n \"2018-11-30\"\r\n]" 我试图从中提取日期,我想我可以用 JsonConvert.DeserializeObject<DateTime>(myJson) JsonConvert.DeserializeObject(myJson) 但这会引发意外的字符错误 当然,我可以简单地使用find和replace,但我想了解此错误的

我有一个字符串:

var myJson ="[\r\n  \"2018-08-14\",\r\n  \"2018-08-30\",\r\n  \"2018-11-30\"\r\n]"
我试图从中提取日期,我想我可以用

JsonConvert.DeserializeObject<DateTime>(myJson)
JsonConvert.DeserializeObject(myJson)
但这会引发意外的字符错误


当然,我可以简单地使用find和replace,但我想了解此错误的原因。

您必须将其反序列化为DateTime集合,例如:

var val = JsonConvert.DeserializeObject<List<DateTime>>(myJson);
var val=JsonConvert.DeserializeObject(myJson);

您必须将其反序列化为日期时间集合,例如:

var val = JsonConvert.DeserializeObject<List<DateTime>>(myJson);
var val=JsonConvert.DeserializeObject(myJson);

就像我之前评论的那样,答案是一个数组,正如您在json中看到的那样。它包含多个日期时间,并且有方括号表示它是一个数组

var val = JsonConvert.DeserializeObject<DateTime[]>(myJson);
var val=JsonConvert.DeserializeObject(myJson);

或者
List
像@Alex说的那样。

像我之前评论的那样,答案是一个数组,你可以在json中看到。它包含多个日期时间,并且有方括号表示它是一个数组

var val = JsonConvert.DeserializeObject<DateTime[]>(myJson);
var val=JsonConvert.DeserializeObject(myJson);

或者像@Alex所说的
List

这是因为你有一个
DateTime
数组,试试
@JPHellemons不太正确。这是一个
字符串数组
刚刚在LinqPad中尝试了@JPHellemons解决方案,效果很好。这是因为您有一个
日期时间数组
try
@JPHellemons不太正确。这是一个
字符串数组
刚刚在LinqPad中尝试了@JPHellemons解决方案,效果很好。