Почему не получается десериализовать Json?

143
21 апреля 2019, 20:30

Зашел в тупик с десериализацией Json, подскажите, почему?

Делаю всё как по мануалу, онлайн сервисам и многочисленным описаниям, но результата пока нет.

Вот Json, который мне надо разобрать:

[
    {
    "id": 1211,
    "minut": 15,
    "dateTime": "2018-11-16T11:52:40.8417827"
    }
]

Вот класс:

public class TimeIn
    {
    //https://app.quicktype.io/#r=json2csharp
    //[JsonProperty("id")]
    public int Id { get; set; }
    //[JsonProperty("minut")]
    public int Minut { get; set; }
    //[JsonProperty("dateTime")]
    public DateTimeOffset DateTime { get; set; }
    }

Вот так десериализую ответ:

TimeIn time = (JsonConvert.DeserializeObject<TimeIn>(content));

А так пытаюсь увидеть значение:

System.Diagnostics.Debug.WriteLine("!!!  " + time.Minut);

Было уже несколько вариантов кода, но результат один - при отладке, после десериализации, на следующую точку останова выполнение приложения не переходит.

Буду рад любому совету! Спасибо!

Answer 1

Вот рабочий код

TimeIn time = new TimeIn()
            {
                Id = 34,
                Minut = 45,
                DateTime = DateTime.Now
            };
            var json = JsonConvert.SerializeObject(new List<TimeIn>() {time});
            Console.WriteLine($"json string \n {json}");
            //выведет json строку [{"Id":34,"Minut":45,"DateTime":"2018-11-16T12:23:36.3927226+02:00"}]
            // и обрантно
            var col = JsonConvert.DeserializeObject<List<TimeIn>>(json);
            // так как col  коллекция
            foreach (var t in col)
            {
                Console.WriteLine($"t.Minut {t.Minut}");
            }
            Console.ReadKey();
Answer 2

попробуйте добавить [Serializable] над вашим классом TimeIn

Answer 3

Andrey, используй силу аннотации:

[DataContract(Name = "TimeIn")] -для класса

[DataMember(Name = "minut")] - для полей

READ ALSO
BlockingCollection TryTake C#

BlockingCollection TryTake C#

Делаю так:

167
Проблема при изменении иерархии

Проблема при изменении иерархии

Есть такая иерархия классов: Window->baseMaker->someMaker

115
Скомпилированное приложение winforms не видит БД

Скомпилированное приложение winforms не видит БД

У меня есть приложение, которое отображает таблицы из БДБаза данных находится в папке с проектом, соответственно, строка подключения выглядит...

205
C# WPF биндинг к методу коллекции

C# WPF биндинг к методу коллекции

Есть например ObservableCollection забиндена к ListBox ItemsSource и каждый ListBoxItem имеет свой шаблон и стиль с кнопочкой удаленияКогда пользователь нажимает...

123