Я пытаюсь разобрать файл JSON, где дата определяется как JavaScript objects:Как преобразовать новую дату (год, месяц, день) перегрузки с Json.NET
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
так что я пытаюсь разобрать его с JavaScriptDateTimeConverter
test.json:
{"data" : [{"Date" : new Date(2015, 06, 01, 00, 00, 00)}]}
C#:
using (StreamReader file = File.OpenText(@"c:\test.json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(new JavaScriptDateTimeConverter());
Rootobject deserializedRoot = (Rootobject)serializer.Deserialize(file, typeof(Rootobject));
}
Unfortunatly Я получаю эту ошибку:
Неожиданный маркер даты синтаксического анализа. Ожидаемый EndConstructor, получил Integer. Path 'данных [0] .Date 1', строка 13, позиция 30.
Из моего понимания Json.NET ожидать в лучшем случае new Date(52231943)
но не обрабатывает конструктор перегруженные Javascript Date() объекта.
Есть ли какой-либо известный способ преобразования new Date(year, month, day)
?
В файле, который вы обрабатываете, эти даты всегда содержатся в массиве, как указано выше? –
Обратите внимание, что это на самом деле не законный «json» - http://json.org. Это может быть действительный объект Javascript, но не json. –
@ LasseV.Karlsen - вы правы, тем не менее Json.NET поддерживает такой синтаксис. См. Http://james.newtonking.com/archive/2009/02/20/good-date-times-with-json-net и http://www.newtonsoft.com/json/help/html/DatesInJSON.htm – dbc