# ООП. Основы (JSON)

## Повторение теории

Основано на [этой](./t5_file_types.md#вариант-попроще) лекции

1. Создание класса

    В отличие от CSV данные десериализуются в класс, т.е. этот класс должен быть объявлен заранее, например:

    ```cs
    class Student
    {
        public string firstName {get;set;}
        public int age {get;set;}
        public char gender {get;set;}
    }
    ```

1. Подготовка файла для импорта

    ```student.json
    [
        {
            "firstName": "Сергей", 
            "age": 18,
            "gender": "М"
        },
        {
            "firstName": "Богдан", 
            "age": 17,
            "gender": "М"
        },
        {
            "firstName": "Анна", 
            "age": 19,
            "gender": "Ж"
        }
    ]
    ```

1. Импорт данных

    ```cs
    var buffer = File.ReadAllText("./student.json");
    var serializer = new JavaScriptSerializer();
    var studentList = serializer.Deserialize<Student[]>(buffer);
    ...
    ```

## Задача

* сформировать файл с данными в формате JSON **для вашей предметной области**
* загрузить данные в список объектов из подготовленного файла
* применить к полученному списку LINQ-запросы WHERE, ORDERBY, SELECT, DISTINCT, SUM... (вывести результат в консоль и приложить к отчету)

    Например:

    ```cs
    var youReInTheArmyNow = studentList.where(s => s.age >= 18 && s.gender == 'М')
    ```
