Я использую LINQ для JSON.NET для JSON для анализа данных, которые включают даты. Мой образец JSON выглядит так:Сводные даты с использованием JSON.NET
{"2013" : [
{ "date":"2/5/2013 11:13 AM","id":23 }],
"2012" : [
{ "date":"28/9/2012 5:29 PM","id":24 }]
}
Формат даты в d/m/yyyy h: mm. Я попытался разборе его первым использованием DateTime.Parse:
var postTitles = jobject.Children().SelectMany(x => x.First).
Select(p =>
new Report
{
Date = DateTime.Parse((string)p["date"]),
Height = (int)p["height"]
});
Однако бросает FormatException на вторую дату, поэтому я попытался с помощью DateTime.ParseExact вместо:
var postTitles = jobject.Children().SelectMany(x => x.First).
Select(p =>
new Report
{
Date = DateTime.ParseExact(p["date"].ToString(), "dd/mm/yyyy hh:mm", new
CultureInfo("en-US")),
Height = (int)p["height"]
});
На этот раз, я получаю FormatException на первое свидание. Есть ли альтернативы в том, как разбирать эти даты? Я пытался использовать методы расширения, поскольку я привык делать XML, но, похоже, мои методы расширения не распознаются.
Не могли бы вы рассказать мне о форматировании строки? Я довольно смущен, поскольку использование образца в документации MSDN для ToString. – CCCC
@CCCC: Трудно дать вам дальнейшее просветление, не зная, где ваше замешательство. –
Из того, что я понимаю, спецификаторы формата извлекают определенные части даты, такие как месяц, день и год, для чего требуется правильно отформатированная дата. То, что я пытаюсь сделать, - это преобразовать данные, найденные в файле JSON, в правильно отформатированную дату. – CCCC