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解决方案,效果很好。